{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "papermill": {
     "duration": 0.019244,
     "end_time": "2021-08-01T05:16:57.325984",
     "exception": false,
     "start_time": "2021-08-01T05:16:57.306740",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "# Python机器学习（第15期）第3课书面作业\n",
    "学号：113727\n",
    "\n",
    "1. 阅读《Bayesian Methods for Hackers》一书第五章关于暗物质观测Kaggle大赛的代码  \n",
    "1）画出有关贝叶斯分析的物理过程图  \n",
    "2）用文字或公式描述一下计算过程  \n",
    "2. 在挑战者号的例子中，如果把两点分布的参数p采用其它形式的分布（例如泊松分布），会是怎样的结果，动手试试。绘制分离图说明采用该种分布是否合理。"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {
    "papermill": {
     "duration": 0.017569,
     "end_time": "2021-08-01T05:16:57.364191",
     "exception": false,
     "start_time": "2021-08-01T05:16:57.346622",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "## 作业1\n",
    "\n",
    "### 1）画出有关贝叶斯分析的物理过程图\n",
    "![phyproc](https://gitee.com/dotzhen/cloud-notes/raw/master/phyproc.png)\n",
    "\n",
    "\n",
    "### 2）用文字或公式描述一下计算过程\n",
    "\n",
    "1. 首先建立贝叶斯分析模型：  \n",
    "1）物理过程如上图所示。  \n",
    "2）星球椭圆率的先验分布为正态分布$N(mean, \\frac{1}{0.05})$  \n",
    "3）mean计算依赖如下公式：  \n",
    "$$\n",
    "mean=\\sum_{i=1}^{n\\_halo\\_in\\_sky}\\frac{masses[i]*tangential\\_distance(glx\\_pos,halo\\_position)}{f\\_distance(glx\\_pos,halo\\_position,fdist\\_constant)}\n",
    "$$\n",
    "4）n_halo_in_sky最大3，最小0；fdist_constants=[240,70,70]  \n",
    "5）masses实际由一个大光晕质量（mass_large）和2个小光晕质量(mass_small1和mass_small2)组成（最多3个）:  \n",
    "  a) mass_large的先验分布为N(40,180)  \n",
    "  b) mall_small1/2就等于20，原因书中说了，简化处理  \n",
    "6）tangential_distance函数是用来计算光晕使目标星系弯曲的方向；  \n",
    "7）f_distance函数用来计算光晕与星系的距离；  \n",
    "8）6和7中都用到了变量halo_position，这个变量表示光晕的位置，它的先验分布为2个维度的N(0,4200)。  \n",
    "2. 用MCMC方法获得后验分布采样，采样1050000次，950000次后进入burn in。  \n",
    "3. 对采样后数据用均值获得光晕位置信息，再整体计算一下结果。  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "papermill": {
     "duration": 0.017529,
     "end_time": "2021-08-01T05:16:57.399569",
     "exception": false,
     "start_time": "2021-08-01T05:16:57.382040",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "## 作业2 \n",
    "在挑战者号的例子中，如果把两点分布的参数p采用其它形式的分布（例如泊松分布），会是怎样的结果，动手试试。绘制分离图说明采用该种分布是否合理。  \n",
    "尝试用泊松分布来表示参数p,泊松分布中的参数$\\lambda$用指数分布作为先验。  \n",
    "试验结果是：\n",
    "1. 从分离图来看，模型不太合理，等于1的柱子不是很集中在右侧。\n",
    "2. 整体的概率很小，这一点没有找到原因，但是也可能是模型不合理的原因。\n",
    "\n",
    "下面是代码："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
    "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5",
    "execution": {
     "iopub.execute_input": "2021-08-01T05:16:57.439607Z",
     "iopub.status.busy": "2021-08-01T05:16:57.438446Z",
     "iopub.status.idle": "2021-08-01T05:16:57.455494Z",
     "shell.execute_reply": "2021-08-01T05:16:57.456388Z",
     "shell.execute_reply.started": "2021-08-01T05:13:20.391041Z"
    },
    "papermill": {
     "duration": 0.039378,
     "end_time": "2021-08-01T05:16:57.456766",
     "exception": false,
     "start_time": "2021-08-01T05:16:57.417388",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/kaggle/input/bayesian-methods/Training_halos.csv\n",
      "/kaggle/input/bayesian-methods/smoking_death.csv\n",
      "/kaggle/input/bayesian-methods/github_data.csv\n",
      "/kaggle/input/bayesian-methods/results_2014.csv\n",
      "/kaggle/input/bayesian-methods/challenger_data.csv\n",
      "/kaggle/input/bayesian-methods/table_2014.csv\n",
      "/kaggle/input/bayesian-methods/mixture_data.csv\n",
      "/kaggle/input/bayesian-methods/txtdata.csv\n",
      "/kaggle/input/bayesian-methods/table_2014.ods\n",
      "/kaggle/input/bayesian-methods/data.csv\n",
      "/kaggle/input/bayesian-methods/census_data.csv\n",
      "/kaggle/input/bayesian-methods/data.txt\n",
      "/kaggle/input/bayesian-methods/Test_haloCounts.csv\n"
     ]
    }
   ],
   "source": [
    "import numpy as np # linear algebra\n",
    "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n",
    "\n",
    "import os\n",
    "for dirname, _, filenames in os.walk('/kaggle/input'):\n",
    "    for filename in filenames:\n",
    "        print(os.path.join(dirname, filename))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:16:57.499088Z",
     "iopub.status.busy": "2021-08-01T05:16:57.498342Z",
     "iopub.status.idle": "2021-08-01T05:17:02.887700Z",
     "shell.execute_reply": "2021-08-01T05:17:02.887047Z",
     "shell.execute_reply.started": "2021-08-01T05:13:20.420549Z"
    },
    "papermill": {
     "duration": 5.410275,
     "end_time": "2021-08-01T05:17:02.887863",
     "exception": false,
     "start_time": "2021-08-01T05:16:57.477588",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "import pymc3 as pm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:17:02.929758Z",
     "iopub.status.busy": "2021-08-01T05:17:02.929060Z",
     "iopub.status.idle": "2021-08-01T05:17:02.933732Z",
     "shell.execute_reply": "2021-08-01T05:17:02.933084Z",
     "shell.execute_reply.started": "2021-08-01T05:13:26.099397Z"
    },
    "papermill": {
     "duration": 0.027006,
     "end_time": "2021-08-01T05:17:02.933871",
     "exception": false,
     "start_time": "2021-08-01T05:17:02.906865",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from IPython.core.pylabtools import figsize\n",
    "import theano.tensor as tt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:17:02.974295Z",
     "iopub.status.busy": "2021-08-01T05:17:02.973644Z",
     "iopub.status.idle": "2021-08-01T05:17:03.189042Z",
     "shell.execute_reply": "2021-08-01T05:17:03.188525Z",
     "shell.execute_reply.started": "2021-08-01T05:13:26.106319Z"
    },
    "papermill": {
     "duration": 0.236475,
     "end_time": "2021-08-01T05:17:03.189183",
     "exception": false,
     "start_time": "2021-08-01T05:17:02.952708",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Temp (F), O-Ring failure?\n",
      "[[66.  0.]\n",
      " [70.  1.]\n",
      " [69.  0.]\n",
      " [68.  0.]\n",
      " [67.  0.]\n",
      " [72.  0.]\n",
      " [73.  0.]\n",
      " [70.  0.]\n",
      " [57.  1.]\n",
      " [63.  1.]\n",
      " [70.  1.]\n",
      " [78.  0.]\n",
      " [67.  0.]\n",
      " [53.  1.]\n",
      " [67.  0.]\n",
      " [75.  0.]\n",
      " [70.  0.]\n",
      " [81.  0.]\n",
      " [76.  0.]\n",
      " [79.  0.]\n",
      " [75.  1.]\n",
      " [76.  0.]\n",
      " [58.  1.]]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuMAAAD7CAYAAADAZ5p7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAp+klEQVR4nO3de5hdZXn///dnACUmIUwE8zNpEKtoq7a1BoVWW89WaKs9aNVqKh5qbT20Vqu0CiKpp6+1LVaqtWrxGxW1ftV6ohLPh6qVIHhWPKAhxAAyxBCDQub+/bHWwM4wM9mBrKzsmffruuaa2Wut/ax7P89ae+797Gc9K1WFJEmSpP1vrO8AJEmSpIXKZFySJEnqicm4JEmS1BOTcUmSJKknJuOSJElST0zGJUmSpJ6YjEsjLsmfJ9ma5Ookt+47numS3DnJBUm2J3nmkM+pJHfsOrYDXZL7Jbmk432cluTNXe5jbyX5uySv7zsOSdofTMalHiW5OMnONlG9Ksn/JHlqkqHOzSSHAP8IPKSqllTVj25iHEe3CfDBN+X5e/Bc4GNVtbSqXjXDvj+e5Mkd7Heq/Ccl+UZbx1uTfDDJ0q72t7eS3DXJuUmubI+BjUlO3Edl7/ahpovkPslJSb6c5CdJfpjkNUkO38NzPp7kmvYD5BVJ3pXktlPrq+olVdXZMdGV/fHhaX9q358e1Hcc0nxnMi7173erailwO+BlwPOANwz53BXAocBXO4ptX7gdPcWX5L7AS4DHtHX8i8Db+4hlDu8DNgD/H3Ab4JnAj3uNaEhJng28HPgbYBlwPE17b0hyiz08/elVtQS4I7AE+IcuY9XuOvrgvd/3Ic0HJuPSAaKqtlXVe4FHAY9PcjeAJLdM8g9JftD27L42yaIkdwK+2T79qiQfbbf/hSQb2p7Wbyb5o6l9tM97ZZLvJ9mW5NNJFgGfHCjn6iS/luSOST7RbndFklmT2CQPS/LVtmf340l+sV3+UeD+wKvbcu807XkvBn5jYP2rB1Y/KMlFbZlnJsnA856Y5OtJJpJ8KMntZgntnsBnq+qLbR1fWVVvqqrtbTlntfW5oe05/8RgWUnOSLIpyY/bHuvfGFh3UDuc4jvtczcmWb2nNpj2+o8Abg/8e1X9rP35TFV9etp2z05yWZItSZ4wsHy3bxXaXupPt39PtemFbd0+HjgHWNk+vjrJyhliOj7NNzRXJbkwyf1mif0w4EXAM6rqv6vq2qq6GPgj4GjgcTM9b7qqugp4D3D3gbKvHzqTG761eXx7DlyR5PkD2y5K8qb2WPh6kucO9k4neV6SzW0bfTPJA2d4Lcel6dU/aGDZ7yf5Uvv3vZKc1x4HW5P84wxlLGaG+k0yluTk9jj5UZJ3JFk+7bU9oT3OJtJ8M3bPJF9q2+DVA/s4Kclnkry6PS+/Mfh6kixL8ob2ONmc5O+nXtPAc/8pyY+A05LcIclH27iuSPKWtN9qJFkPHAW8r30tz80MPf8Z6D1v2+2dSd6c5MfASXPFJKlVVf74409PP8DFwINmWP4D4M/bv/8JeC+wHFhK05P60nbd0UABB7ePFwObgCcABwO/ClwB3KVdfybwcWAVcBDw68Atp5fTbns28HyaD+2HAveZ5TXcCdgBPBg4hGZYyreBW7TrPw48eY46uNH6Npb3A4fTJASXAw9t1z28Lf8X29f4AuB/Zin7N4CdNEnjvYFbTlt/FrAd+M22Hs4APj2w/nHArdv9PBv4IXBou+5vgC8DdwYC/Eq77ZxtMG3/AS5qX+vvASumrb8fcB1welu3JwI/AcZnqjvgpGnxF3DHaeVdMm0fpwFvbv9eBfyo3c9Y26Y/Ao6cIfaHtrEdPMO6NwFnD9PmbZ19GPivWWI6un0d/w4sauv5p8AvtutfBnwCGAd+DvjS1Gts22YTsHKgrDvMEtN3gAcPPP5P4OT2788Ca9u/lwDHz1LGTPX7l8Dn2thuCfzbVN0MvLbX0pxjDwGuoflwcpu2PS4D7jvQvtcBz2qPh0cB24Dl7fp3t+Uvbp//v8CfTXvuM2iOy0U030o8uI3rSJoP5f882/vTLK/v+m3adruW5lgea/cxa0z++ONP82PPuHRguhRYniTAU4BnVdOru51m2MWjZ3ne7wAXV9V/VNV11fQI/z/gkWnGoT8R+Muq2lxVu6rqf6rqp7OUdS3NkIOVVXVNTeutHfAo4ANVtaGqrqUZbrCIJtG/OV5WVVdV1Q+Aj3FDz+lTaT6MfL2qrqOpj7tnht7xqvoU8AfAPYAPAD9K8o/TeuY+UFWfbOvh+cCvTfVwV9Wbq+pHbV2+kiZpuXP7vCcDL6iqb1bjwmrG7M/aBjPEVzTfHFwMvBLYkuSTSY4Z2Oxa4PRqep4/CFw9EMO+9jjgg1X1waqarKoNwHk0yfl0RwBXtG0w3ZZ2/VxelWQbzQeVI2iSxLm8qKp2VtWFwIU0STk0PfEvqaqJqroEGLwuYRdNm90lySFVdXFVfWeW8s8GHgOQ5pqCE9tl0LTBHZMcUVVXV9Xn9hDroKcCz6+qS9pj7DTgEdl9CMe69hw7l+aD7dlVdVlVbQY+RfOBbsplNAnztVX1dppvx347yYo25r+qqh1VdRnNB/nB94pLq+pf2uNyZ1V9uz1vf1pVl9Ncf3LfvXhtM/lsVb2nqiaBw4aISVrwTMalA9Mq4Eqa3qpbARvbr6yvAv67XT6T2wHHTW3bbv9YmvHIR9D0vs2WjEz3XJqe2/9NMwTlibNstxL4/tSD9p/wpvY13Bw/HPj7JzQ9ktC8xjMGXt+VbZwz7q+qzqmq36X5ZuHhND2EgxcHbhrY9uq2vJUASZ7TDn3Y1u5rGTckmauZuS7naoOZ4rukqp5eVXdon7sD+L8Dm/xoWsI7WBf72u1oPrgNxn4f4LYzbHsFcERmHhd823Y9aYYBTQ3b+LuBbZ5ZVcuAX+aGXu25zHY8rGSgDdm9Pb8N/BVNAnxZkrdlhqE5rbcCf5DkljQf4M6vqqnj+kk03wB9I8kXkvzOHmIddDvg3QP1+XWaDwkrBrbZOvD3zhkeD7b35vZD3JTv09TB7Wh6y7cM7OvfaHqjpwzWE0lWtHWyuR1W8mb2/CFqTwb3MUxM0oJnMi4dYJLckyax/DRNQrMTuGtVHd7+LKvmwreZbAI+MbDt4dXMsvLnbVnXAHeY4Xl1owVVP6yqP62qlcCfAf+amacbvJTmn+5U/KFJVDcP+ZJvtO892ETzNffga1xUVf8z506ant6PAB8F7jawavVA7EtokvZL04wPfy5Nz+t4VR1OMyRgauz6Jmauy7naYE5VtYlmKNHd9rRtawfNh7UpMyb8g7vYw/pNwPppsS+uqpfNsO1naYaL/MHgwrYOTwA+AlBVT21f/5KqesmNAqr6MvD3wG7XBeyFLeyeyK8eXFlVb62q+9Aco0VzwemNVNXXaBLbE4A/pknOp9ZdVFWPoUkiXw68sx0jfqNiZli2CThhWp0e2vZ63xSrptXTUTTn4Caa9jhiYD+HVdVd54jvJe2yX6qqw2i+Gckc2+92vLXfME3vGBh8zjAxSQueybh0gEhyWNvj9jaa8bJfbnuZ/x34pyS3abdbleS3Zinm/cCdkqxNckj7c88kv9iW9UbgH9NcWHZQmgs1b0kzJnsS+PmBeB6ZZCrJmaD5Jzs5wz7fQfM1+QPTTLX4bJp/wHMmxwO2Du53CK8F/jbJXds4lyW50RCQdt3Dkzw6yXga96L5Gn5wmMGJSe6TZvaPdcDn2qR4Kc0Y28uBg5OcSvO1+5TXA+uSHNOW/ctp5nmftQ1miG88yYvSXCw7luaCzidOi28uF9D05t6q/aD0pGnrp9ftVuDWSZbNUt6bgd9N8lvt8XFomov2btRrXVXbaMbi/0uSh7av82ia4+ESYP2QrwGaMeYrgIftxXOmvIPmeBhPsgp4+tSKNHPcP6A9xq+h+WA70zE85a00Y7x/k2bM+FQ5j0tyZHsOXdUunqmcmer3tcCL0w6jSnJkkofv7YsccBvgmW19P5Lm2okPVtUW4Fzgle17yViaCzTnGnaylGbY07a27v5mhtczePx8Czg0yW+35/oLaIYBzegmxiQtOCbjUv/el2Q7TS/S82nGbT5hYP3zaC5Y/Fz7VfKHmWXMcDVjyh9CMybzUpqv9l/ODf8wn0Nz0eEXaIZjvBwYq6qfAC8GPtN+nXw8zUwkn09yNc0FpH9ZVd+dYZ/fpOlR+xea3vffpZmu8WdDvv4zaMbQTiS50TzkM+zv3W3cb2vr4ys0vZkzmQD+lOYiyamv4V9RVW8Z2OatwAtp6mMNN8wC8iGaIUHfoukxvYbdv4L/R5pE8Ny27DcAi4Zog0E/o7mI78NtGV+h+SBz0p7qofVPbRlbaRLat0xbfxrwprZN/6iqvkEzDvq77bLdhmy0H0IeDvwdzYeQTTQJ2oz/K6rq/7Tb/kMb/+fb5zywZr8WYaZyfkZzHJwy7HMGnE6T/H+Pph7fSVOH0NT5y2iOyx/SJLJ/O0dZZ9N8WPtoVV0xsPyhwFfbc+EM4NFVtXOG1zFT/Z5Bc/6c257nnwOOuwmvc8rngWPa1/Ri4BF1w/0F/gS4BfA1mmP/ncw8xGjKi2iup9hGc03Fu6atfynwgva1PKf9APYXNB9EN9P0lO9pXvW9jUlacLL70DNJWjiSnEUzO8QL+o5F+0aSP6dJludd72uSk2hmoblP37FI2nfsGZckjawkt01y73YIxJ1phkm9u++4JGlY3h1LkjTKbkEzQ8ftacZzvw341z4DkqS94TAVSZIkqScOU5EkSZJ6YjIuSZIk9eSAGjN+xBFH1NFHH913GJIkSdI+s3Hjxiuqasa7Zx9QyfjRRx/Neeed13cYkiRJ0j6T5PuzrXOYiiRJktSTA6pnvA9VxebNm9m+fTtLly5l1apVJOk7rHmpy7q2HUefbag+TE5OsnHjRrZu3cqKFStYs2YNY2P2U40S3zs06hZ0Mn7RRRexfv16Nm3axNjYGLt27eKoo45i7dq1HHPMMX2HN690Wde24+izDdWHDRs2sG7dOrZs2UISJicnWblyJaeccgoPfvCD+w5PQ/C9Q/NBZ/OMJ3kj8DvAZVV1t2Gec+yxx9b+GjN+0UUX8dKXvpQlS5YwPj5OEqqKiYkJduzYwcknn+yJvI90Wde24+izDdWHDRs28LSnPY1FixaxbNkyxsbGmJycZNu2bezcuZMzzzzThPwA53uHRkmSjVV17Ezruvwu7izgoR2Wf5NVFevXr2fJkiUsX778+q+zkrB8+XIWL17M+vXr8YZIN1+XdW07jj7bUH2YnJxk3bp1LFq0iPHx8euHpYyNjTE+Ps6iRYtYt24dk5OTPUeq2fjeofmks2S8qj4JXNlV+TfH5s2b2bRpE+Pj4zOuHx8fZ9OmTWzevHk/Rzb/dFnXtuPosw3Vh40bN7JlyxaWLVs24/ply5Zx6aWXsnHjxv0cmYble4fmk96vUknylCTnJTnv8ssv3y/73L59O2NjY7Ne4JGEsbExtm/fvl/imc+6rGvbcfTZhurD1q1brz+2ZjI2NsbY2Bhbt27dz5FpWL53aD7pPRmvqtdV1bFVdeyRR844F/o+t3TpUnbt2jXr11dVxeTkJEuXLt0v8cxnXda17Tj6bEP1YcWKFUxOTs46DGVq3YoVK/ZzZBqW7x2aT3pPxvuwatUqjjrqKCYmJmZcPzExwerVq1m1atV+jmz+6bKubcfRZxuqD2vWrGHlypVs27ZtxvXbtm1j5cqVrFmzZj9HpmH53qH5ZEEm40lYu3YtV199NVdeeeX1n6yriiuvvJIdO3awdu1a5yndB7qsa9tx9NmG6sPY2BinnHIKO3fuZGJi4voe8snJSSYmJti5cyennHKK840fwHzv0HzS5dSGZwP3A44AtgIvrKo3zPWc/Tm1Idx4ftLJyUlWr17t/KQd6LKubcfRZxuqD1PzjF966aXXH3fOMz5afO/QqJhrasPOkvGbYn8n4+Cdu/Yn78CpudiG6oN34Bx9vndoFJiMS5IkST3p66Y/kiRJkuZgMi5JkiT1xGRckiRJ6onJuCRJktQTk3FJkiSpJybjkiRJUk9MxiVJkqSemIxLkiRJPTEZlyRJknpiMi5JkiT1xGRckiRJ6onJuCRJktQTk3FJkiSpJybjkiRJUk9MxiVJkqSemIxLkiRJPTEZlyRJknpiMi5JkiT1xGRckiRJ6onJuCRJktQTk3FJkiSpJybjkiRJUk9MxiVJkqSemIxLkiRJPTEZlyRJknpiMi5JkiT1xGRckiRJ6onJuCRJktQTk3FJkiSpJybjkiRJUk9MxiVJkqSemIxLkiRJPTEZlyRJknpiMi5JkiT1xGRckiRJ6onJuCRJktSTOZPxJCuTHLG/gpEkSZIWklmT8SSnAp8GNiZ52f4LSZIkSVoY5uoZ/2Pgzu3PbZN8KMmzkxyT5HH7JzxJkiRp/porGb8OqKq6pqoeD7waOBS4BbB4fwQnSZIkzWcHz7HuX4DfBD4KUFXvA97Xrvtqx3FJkiRJ896sPeNV9W9V9dEkj5y+bqZlkiRJkvbOMFMb/u2QyyRJkiTthVmHqSQ5ATgRWJXkVQOrDqMZTy5JkiTpZphrzPilwHnAw4CNA8u3A8/qMihJkiRpIZg1Ga+qC4ELk7y1qq7djzFJkiRJC8JcPeNT7pXkNOB27fahmfLw57sMTJIkSZrvhknG30AzLGUjsKvbcCRJkqSFY5hkfFtVndN5JJIkSdICM0wy/rEkrwDeBfx0amFVnd9ZVJIkSdICMEwyflz7+9iBZQU8YN+HI0mSJC0ce0zGq+r++yMQSZIkaaHZ4x04k6xI8oYk57SP75LkSd2HJkmSJM1ve0zGgbOADwEr28ffAv6qo3gkSZKkBWOYZPyIqnoHMAlQVdfhFIeSJEnSzTZMMr4jya1pLtokyfHAtk6jkiRJkhaAYWZT+WvgvcAdknwGOBJ4RKdRSZIkSQvAMLOpnJ/kvsCdgQDfrKprO49MkiRJmudmTcaT/MEsq+6UhKp6V0cxSZIkSQvCXD3jv9v+vg3w68BH28f3B/6H5o6ckiRJkm6iWZPxqnoCQJJzgbtU1Zb28W1ppjuUJEmSdDMMM5vK6qlEvLUVOKqjeCRJkqQFY5jZVD6S5EPA2e3jRwEf7i4kSZIkaWEYZjaVp7cXc/5Gu+h1VfXubsOSJEmS5r9hesanZk7xgk1JkiRpH5prasNPV9V9kmynvfvm1CqgquqwzqOTJEmS5rG5ZlO5T/t76f4LR5IkSVo49jibSpLjkywdeLw0yXHdhiVJkiTNf8NMbfga4OqBxzvaZZIkSZJuhmGS8VTV9WPGq2qSIS/8lCRJkjS7YZLx7yZ5ZpJD2p+/BL7bdWCSJEnSfDdMMv5U4NeBzcAlwHHAU7oMSpIkSVoIhrnpz2XAo/dDLJIkSdKCssdkPMmRwJ8CRw9uX1VP7C4sSZIkaf4b5kLM/wI+BXwY2NVtOJIkSdLCMUwyfquqel7nkUiSJEkLzDAXcL4/yYmdRyJJkiQtMMMk439Jk5DvTPLjJNuT/LjrwCRJkqT5bpjZVJbuj0AkSZKkhWbWZDzJPeZ6YlWdv+/DkSRJkhaOuXrGXznHugIesI9jkSRJkhaUWZPxqrr//gxEkiRJWmiGuYBTkiRJUgdMxiVJkqSemIxLkiRJPdljMp7G45Kc2j4+Ksm9ug9NkiRJmt+G6Rn/V+DXgMe0j7cDZ3YWkSRJkrRA7PGmP8BxVXWPJF8EqKqJJLfoOC5JkiRp3humZ/zaJAfRzC1OkiOByU6jkiRJkhaAYZLxVwHvBm6T5MXAp4GXdBqVJEmStADscZhKVb0lyUbggUCA36uqr3cemSRJkjTP7TEZT7IcuAw4e2DZIVV1bZeBSZIkSfPdMMNUzgcuB74FXNT+fXGS85Os6TI4SZIkaT4bJhnfAJxYVUdU1a2BE4D3A39BM+2hJEmSpJtgmGT8+Kr60NSDqjoX+LWq+hxwy84ikyRJkua5YeYZ35LkecDb2sePAra20x06xaEkSZJ0Ew3TM/7HwM8B72l/jmqXHQT8UVeBSZIkSfPdMFMbXgE8Y5bV39634UiSJEkLxzBTGx4JPBe4K3Do1PKqekCHcUmSJEnz3jDDVN4CfAO4PfAi4GLgCx3GJEmSJC0IwyTjt66qNwDXVtUnquqJgL3ikiRJ0s00zGwqU3fa3JLkt4FLgeXdhSRJkiQtDMMk43+fZBnwbOBfgMOAZ3UalSRJkrQADDObyvvbP7cB9+82HEmSJGnhGGY2ldvTTG149OD2VfWw7sKSJEmS5r9hhqm8B3gD8D6846YkSZK0zwyTjF9TVa/qPBJJkiRpgRkmGT8jyQuBc4GfTi2sqvM7i0qSJElaAIZJxn8JWEszt/jUMJXCucYlSZKkm2WYZPyRwM9X1c+6DkaSJElaSIa5A+dXgMM7jkOSJElacIbpGT8c+EaSL7D7mHGnNpQkSZJuhmGS8Rd2HoUkSZK0AA1zB85P7I9AJEmSpIVmj2PGkxyf5AtJrk7ysyS7kvx4fwQnSZIkzWfDXMD5auAxwEXAIuDJwJldBiVJkiQtBMMk41TVt4GDqmpXVf0H8NBuw5IkSZLmv2Eu4PxJklsAFyT5P8AWhkziJUmSJM1umKR6bbvd04EdwGrgD7sMSpIkSVoIhplN5ftJjmz/flH3IUmSJEkLw6w942mcluQK4JvAt5JcnuTU/ReeJEmSNH/NNUzlWcC9gXtW1fKqGgeOA+6d5Fn7JTpJkiRpHpsrGV8LPKaqvje1oKq+CzwO+JOuA5MkSZLmu7mS8UOq6orpC6vqcuCQ7kKSJEmSFoa5kvGf3cR1kiRJkoYw12wqvzLLbe8DHNpRPJIkSdKCMWsyXlUH7c9AJEmSpIXGO2lKkiRJPTEZlyRJknpiMi5JkiT1xGRckiRJ6onJuCRJktQTk3FJkiSpJybjkiRJUk9MxiVJkqSemIxLkiRJPTEZlyRJknpiMi5JkiT1xGRckiRJ6onJuCRJktQTk3FJkiSpJybjkiRJUk9MxiVJkqSemIxLkiRJPTEZlyRJknpiMi5JkiT1xGRckiRJ6onJuCRJktQTk3FJkiSpJybjkiRJUk9MxiVJkqSemIxLkiRJPTEZlyRJknpiMi5JkiT1xGRckiRJ6onJuCRJktQTk3FJkiSpJybjkiRJUk9MxiVJkqSemIxLkiRJPTEZlyRJknpycN8BSJJurKrYvHkz27dvZ+nSpaxatYokN7vcXbt2cc4557Bp0yZWr17NCSecwEEHHbQPIu4u5i7LnpycZOPGjWzdupUVK1awZs0axsYO/H6qruqjyzbsSpcxj+LxMYrnYZdGIWaTcUk6wFx00UWsX7+eTZs2MTY2xq5duzjqqKNYu3YtxxxzzE0u96yzzuLUU0/lqquuApp/UuPj45x++umcdNJJB2TMXZa9YcMG1q1bx5YtW0jC5OQkK1eu5JRTTuHBD37wzYq5S13VR5dt2JUuYx7F42MUz8MujUrMqaruCk8eCpwBHAS8vqpeNtf2xx57bJ133nmdxSNJB7qLLrqIl770pSxZsoTx8XGSUFVMTEywY8cOTj755Jv0T+Sss87imc98JocccgiLFy9mbGyMyclJduzYwXXXXccZZ5xxkxPyrmLusuwNGzbwtKc9jUWLFrFs2bLr62Pbtm3s3LmTM88884BMuLqqjy7bsCtdxjyKx8conoddOtBiTrKxqo6daV1n37UkOQg4EzgBuAvwmCR36Wp/kjTqqor169ezZMkSli9ffv1XqUlYvnw5ixcvZv369extJ8quXbs49dRTOeSQQ1i6dOn1X7OPjY2xdOlSDj74YE499VR27dp1wMTcZdmTk5OsW7eORYsWMT4+vlt9jI+Ps2jRItatW8fk5ORex9ylruqjyzbsSpcxj+LxMYrnYZdGLeYuBz7dC/h2VX23qn4GvA14eIf7k6SRtnnzZjZt2sT4+PiM68fHx9m0aRObN2/eq3LPOeccrrrqKhYvXjzj+sWLFzMxMcE555xzwMTcZdkbN25ky5YtLFu2bMb1y5Yt49JLL2Xjxo17HXOXuqqPLtuwK13GPIrHxyieh10atZi7TMZXAZsGHl/SLttNkqckOS/JeZdffnmH4UjSgW379u2MjY3NenFREsbGxti+fftelbtpU/NWPNuFZ1P7nNpub3QVc5dlb9269frnzmRsbIyxsTG2bt261zF3qav66LINu9JlzKN4fIziedilUYu590uCq+p1VXVsVR175JFH9h2OJPVm6dKl7Nq1a9avTquKyclJli5dulflrl69+vrnzmRycpKqYvXq1QdMzF2WvWLFCiYnJ+esj8nJSVasWLHXMXepq/rosg270mXMo3h8jOJ52KVRi7nLZHwzMPjO/nPtMknSDFatWsVRRx3FxMTEjOsnJiZYvXo1q1bd6EvGOZ1wwgmMj4+zY8eOGdfv2LGD8fFxTjjhhAMm5i7LXrNmDStXrmTbtm0zrt+2bRsrV65kzZo1ex1zl7qqjy7bsCtdxjyKx8conoddGrWYu0zGvwAck+T2SW4BPBp4b4f7k6SRloS1a9dy9dVXc+WVV17fq1NVXHnllezYsYO1a9fu9Ry5Bx10EKeffjrXXnst27dvv77Hb3Jyku3bt3Pddddx+umn36T5xruKucuyx8bGOOWUU9i5cycTExO71cfExAQ7d+7klFNOOeDmk+6qPrpsw650GfMoHh+jeB52adRi7npqwxOBf6aZ2vCNVfXiubZ3akNJuvHcuJOT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\n",
      "text/plain": [
       "<Figure size 900x252 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "figsize(12.5, 3.5)\n",
    "np.set_printoptions(precision=3, suppress=True)\n",
    "challenger_data = np.genfromtxt(\"/kaggle/input/bayesian-methods/challenger_data.csv\", skip_header=1,\n",
    "                                usecols=[1, 2], missing_values=\"NA\",\n",
    "                                delimiter=\",\")\n",
    "#drop the NA values\n",
    "challenger_data = challenger_data[~np.isnan(challenger_data[:, 1])]\n",
    "\n",
    "#plot it, as a function of tempature (the first column)\n",
    "print(\"Temp (F), O-Ring failure?\")\n",
    "print(challenger_data)\n",
    "\n",
    "plt.scatter(challenger_data[:, 0], challenger_data[:, 1], s=75, color=\"k\",\n",
    "            alpha=0.5)\n",
    "plt.yticks([0, 1])\n",
    "plt.ylabel(\"Damage Incident?\")\n",
    "plt.xlabel(\"Outside temperature (Fahrenheit)\")\n",
    "plt.title(\"Defects of the Space Shuttle O-Rings vs temperature\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "papermill": {
     "duration": 0.019994,
     "end_time": "2021-08-01T05:17:03.229261",
     "exception": false,
     "start_time": "2021-08-01T05:17:03.209267",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "**这里定义了泊松分布函数，我尝试了一下自己写的与统计库提供的，结果差不多。我也写了一个阶乘函数，需要用在后面的pymc3中的确定型变量定义中。**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:17:03.313507Z",
     "iopub.status.busy": "2021-08-01T05:17:03.312762Z",
     "iopub.status.idle": "2021-08-01T05:17:03.675055Z",
     "shell.execute_reply": "2021-08-01T05:17:03.675538Z",
     "shell.execute_reply.started": "2021-08-01T05:13:26.339743Z"
    },
    "papermill": {
     "duration": 0.427025,
     "end_time": "2021-08-01T05:17:03.675720",
     "exception": false,
     "start_time": "2021-08-01T05:17:03.248695",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy import stats\n",
    "\n",
    "import math\n",
    "\n",
    "def factorial(x):\n",
    "    n=len(x)\n",
    "    y=np.zeros(n)\n",
    "    for i in range(n):\n",
    "        y[i]=np.math.factorial(math.ceil(x[i]))\n",
    "    return y\n",
    "\n",
    "figsize(12, 3)\n",
    "\n",
    "def poisson(x, lam):\n",
    "    #return np.power(lam,x)*np.exp(np.dot(-1,lam))/ (factorial(x))\n",
    "    return stats.poisson.pmf(x,lam)\n",
    "\n",
    "x = np.linspace(0, 100, 101)\n",
    "plt.plot(x, poisson(x, 50), label=r\"$\\lambda = 50$\")\n",
    "plt.plot(x, poisson(x, 60), label=r\"$\\lambda = 60$\")\n",
    "plt.plot(x, poisson(x, 70), label=r\"$\\lambda = 70$\")\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:17:03.721736Z",
     "iopub.status.busy": "2021-08-01T05:17:03.720244Z",
     "iopub.status.idle": "2021-08-01T05:17:03.724705Z",
     "shell.execute_reply": "2021-08-01T05:17:03.725220Z",
     "shell.execute_reply.started": "2021-08-01T05:13:26.773800Z"
    },
    "papermill": {
     "duration": 0.028629,
     "end_time": "2021-08-01T05:17:03.725425",
     "exception": false,
     "start_time": "2021-08-01T05:17:03.696796",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "temperature = challenger_data[:, 0]\n",
    "D = challenger_data[:, 1]  # defect or not?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:17:03.771824Z",
     "iopub.status.busy": "2021-08-01T05:17:03.771115Z",
     "iopub.status.idle": "2021-08-01T05:17:03.782142Z",
     "shell.execute_reply": "2021-08-01T05:17:03.782645Z",
     "shell.execute_reply.started": "2021-08-01T05:13:26.781683Z"
    },
    "papermill": {
     "duration": 0.036517,
     "end_time": "2021-08-01T05:17:03.782844",
     "exception": false,
     "start_time": "2021-08-01T05:17:03.746327",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "def separation_plot( p, y, **kwargs ):\n",
    "    \"\"\"\n",
    "    This function creates a separation plot for logistic and probit classification. \n",
    "    See http://mdwardlab.com/sites/default/files/GreenhillWardSacks.pdf\n",
    "    \n",
    "    p: The proportions/probabilities, can be a nxM matrix which represents M models.\n",
    "    y: the 0-1 response variables.\n",
    "    \n",
    "    \"\"\"    \n",
    "    assert p.shape[0] == y.shape[0], \"p.shape[0] != y.shape[0]\"\n",
    "    n = p.shape[0]\n",
    "\n",
    "    try:\n",
    "        M = p.shape[1]\n",
    "    except:\n",
    "        p = p.reshape( n, 1 )\n",
    "        M = p.shape[1]\n",
    "\n",
    "    colors_bmh = np.array( [\"#eeeeee\", \"#348ABD\"] )\n",
    "\n",
    "\n",
    "    fig = plt.figure( )\n",
    "    \n",
    "    for i in range(M):\n",
    "        ax = fig.add_subplot(M, 1, i+1)\n",
    "        ix = np.argsort( p[:,i] )\n",
    "        #plot the different bars\n",
    "        bars = ax.bar( np.arange(n), np.ones(n), width=1.,\n",
    "                color = colors_bmh[ y[ix].astype(int) ], \n",
    "                edgecolor = 'none')\n",
    "        ax.plot( np.arange(n+1), np.append(p[ix,i], p[ix,i][-1]), \"k\",\n",
    "                 linewidth = 1.,drawstyle=\"steps-post\" )\n",
    "        #create expected value bar.\n",
    "        ax.vlines( [(1-p[ix,i]).sum()], [0], [1] )\n",
    "        plt.xlim( 0, n)\n",
    "        \n",
    "    plt.tight_layout()\n",
    "    \n",
    "    return"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:17:03.828812Z",
     "iopub.status.busy": "2021-08-01T05:17:03.827840Z",
     "iopub.status.idle": "2021-08-01T05:19:13.724670Z",
     "shell.execute_reply": "2021-08-01T05:19:13.724059Z",
     "shell.execute_reply.started": "2021-08-01T05:13:26.800123Z"
    },
    "papermill": {
     "duration": 129.921202,
     "end_time": "2021-08-01T05:19:13.724848",
     "exception": false,
     "start_time": "2021-08-01T05:17:03.803646",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='7' class='' max='7' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      100.00% [7/7 00:00<00:00 logp = -1,906, ||grad|| = 442.88]\n",
       "    </div>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.7/site-packages/ipykernel_launcher.py:8: FutureWarning: In v4.0, pm.sample will return an `arviz.InferenceData` object instead of a `MultiTrace` by default. You can pass return_inferencedata=True or return_inferencedata=False to be safe and silence this warning.\n",
      "  \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='242000' class='' max='242000' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      100.00% [242000/242000 00:47<00:00 Sampling 2 chains, 0 divergences]\n",
       "    </div>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "with pm.Model() as model:\n",
    "    gamma = 2\n",
    "    lam = pm.Exponential(\"lambda\", gamma)\n",
    "    p1 = pm.Deterministic(\"p1\", tt.power(lam,temperature)*tt.exp(-1*lam)/factorial(temperature) )\n",
    "    observed1 = pm.Bernoulli(\"bernoulli_obs\", p1, observed=D)\n",
    "    start1 = pm.find_MAP()\n",
    "    step1 = pm.Metropolis()\n",
    "    trace1 = pm.sample(120000, step=step1, start=start1)\n",
    "    burned_trace1 = trace1[100000::2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:19:13.779430Z",
     "iopub.status.busy": "2021-08-01T05:19:13.778631Z",
     "iopub.status.idle": "2021-08-01T05:19:14.009986Z",
     "shell.execute_reply": "2021-08-01T05:19:14.010559Z",
     "shell.execute_reply.started": "2021-08-01T05:15:38.247838Z"
    },
    "papermill": {
     "duration": 0.262967,
     "end_time": "2021-08-01T05:19:14.010759",
     "exception": false,
     "start_time": "2021-08-01T05:19:13.747792",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fe0d049a250>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 900x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "lambda_samples = burned_trace1[\"lambda\"][:, None] \n",
    "\n",
    "figsize(12.5, 6)\n",
    "\n",
    "#histogram of the samples:\n",
    "#plt.subplot(211)\n",
    "plt.title(r\"Posterior distributions of the variables $\\lambda$\")\n",
    "plt.hist(lambda_samples, histtype='stepfilled', bins=35, alpha=0.85,\n",
    "         label=r\"posterior of $\\lambda$\", color=\"#7A68A6\")\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "papermill": {
     "duration": 0.024819,
     "end_time": "2021-08-01T05:19:14.062652",
     "exception": false,
     "start_time": "2021-08-01T05:19:14.037833",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "**上图显示了$\\lambda$参数的后验分布，看上去更像是正态分布。这一点与我们指定的指数分布是有比较大的差别的。**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:19:14.115478Z",
     "iopub.status.busy": "2021-08-01T05:19:14.114789Z",
     "iopub.status.idle": "2021-08-01T05:19:14.139611Z",
     "shell.execute_reply": "2021-08-01T05:19:14.140114Z",
     "shell.execute_reply.started": "2021-08-01T05:15:38.517328Z"
    },
    "papermill": {
     "duration": 0.052833,
     "end_time": "2021-08-01T05:19:14.140365",
     "exception": false,
     "start_time": "2021-08-01T05:19:14.087532",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "t = np.linspace(temperature.min() - 5, temperature.max()+5, 50)[:, None]\n",
    "p_t = poisson(t.T, lambda_samples)\n",
    "mean_prob_t = p_t.mean(axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:19:14.191012Z",
     "iopub.status.busy": "2021-08-01T05:19:14.190334Z",
     "iopub.status.idle": "2021-08-01T05:19:14.432296Z",
     "shell.execute_reply": "2021-08-01T05:19:14.432838Z",
     "shell.execute_reply.started": "2021-08-01T05:15:38.547512Z"
    },
    "papermill": {
     "duration": 0.268964,
     "end_time": "2021-08-01T05:19:14.433028",
     "exception": false,
     "start_time": "2021-08-01T05:19:14.164064",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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RERERKqghF1EREREJIEpYRcRERERSWBK2EVEREREEpgSdhERERGRBKaEXUREREQkgSlhFxERERFJYErYRUREREQSmBJ2EREREZEEpoRdRERERCSBKWEXEREREUlgSthFRERERBKYEnYRERERkQSmhF1EREREJIEpYRcRERERSWBK2EVEREREEpgSdhERERGRBKaEXUREREQkgSlhFxERERFJYErYRUREREQSmBJ2EREREZEEpoRdRERERCSBKWEXEREREUlgSthFRERERBJYjRJ2M/urmZ1tZkrwRURERETqUE0T8InAd4HlZnafmXWPY0wiIiIiIhKqUcLu7jPdfQxwApAFzDSzj8zsKjNLiWeAIiIiIiKHshoPcTGzNsCVwDXAv4GHCRL4f1axzAgzW2ZmK8zsthjzXGRmS8xssZk9v0/Ri4iIiIg0cMk1mcnMXgG6A88B57r7xrBoupnNi7FMEvAY8G1gHTDXzF5z9yVR8xwD3A6c4u5bzOyw/d8UEREREZGGp0YJO/Bnd38zeoKZNXb33e7eP8YyA4EV7r4qnP8FYCSwJGqea4HH3H0LgLtv2qfoRUREREQauJoOibmnkmlzqlnmSGBt1PN14bRoxwLHmtmHZvaxmY2orCIzG2tm88xsXnZ2dg1DFhERERE5+FV5ht3MjiBIstPMrC9gYVFzoEktrf8YYCjQEZhtZr3dfWv0TO7+JPAkQP/+/b0W1isiIiIiclCobkjMGQQXmnYEHoyangf8rJpl1wOdop53DKdFWwf8y933Al+a2RcECfzcauoWERERETkkVJmwu/szwDNmdr67/+8+1j0XOMbMuhEk6pcQ3Ms92qvApcAkM2tLMERm1T6uR0RERESkwapuSMxl7j4F6Gpm48uXu/uDlSxWUlZoZjcC/wCSgKfdfbGZ3Q3Mc/fXwrLhZrYEKAJudvfcA9geEREREZEGpbohMU3D/+n7U3l4Z5k3y027K+qxA+PDPxERERERKae6ITF/Cv//sm7CERERERGRaNUNiXmkqnJ3/5/aDUdERERERKJVNyRmfp1EISIiIiIilarJXWJERERERKSeVDck5iF3/7GZvQ5U+MEidz8vbpGJiIiIiEi1Q2KeC/8/EO9ARERERESkouqGxMwP/79nZo2A4wjOtC9z9z11EJ+IiIiIyCGtujPsAJjZ2cATwErAgG5mdp27/z2ewYmIiIiIHOpqlLADvweGufsKADM7GngDUMIuIiIiIhJHkRrOl1eSrIdWAXlxiEdERERERKJUd5eY74QP55nZm8CLBGPYLwTmxjk2EREREZFDXnVDYs6NevwVMCR8nA2kxSUiEREREREpVd1dYq6qq0BERERERKSimt4lJhX4PtATSC2Z7u5XxykuERERERGh5hedPgccAZwBvAd0RBedioiIiIjEXU0T9m+4+53ADnd/BjgbGBS/sEREREREBGqesO8N/281s15AC+Cw+IQkIiIiIiIlavrDSU+aWSvgTuA1ID18LCIiIiIicVSjhN3d/xI+fA84Kn7hiIiIiIhItBoNiTGzNmb2qJl9ambzzewhM2sT7+BERERERA51NR3D/gKwCTgfuADIAabHKygREREREQnUdAx7e3f/VdTze8zs4ngEJCIiIiIiX6vpGfa3zOwSM4uEfxcB/4hnYCIiIiIiUs0ZdjPLAxww4MfAlLAoAuQDN8UzOBERERGRQ12VCbu7N6urQEREREREpKKajmHHzM4DBodPZ7n73+ITkoiIiIiIlKjpbR3vA34ELAn/fmRm98YzMBERERERqflFp2cB33b3p939aWAEcHZ1C5nZCDNbZmYrzOy2KuY738zczPrXMB4RERERkUNCTRN2gJZRj1tUN7OZJQGPAWcCxwOXmtnxlczXjODs/b/2IRYRERERkUNCTRP23wD/NrPJZvYMMB/4dTXLDARWuPsqd99D8ONLIyuZ71fAb4GCGsYiIiIiInLIqDZhN7MIUAycCPwV+F/gJHev7pdOjwTWRj1fF06LrvsEoJO7v1FNDGPNbJ6ZzcvOzq4uZBERERGRBqPahN3di4Fb3H2ju78W/v33QFccfhB4EPhpDWJ40t37u3v/du3aHeiqRUREREQOGjUdEjPTzG4ys05m1rrkr5pl1gOdop53DKeVaAb0AmaZWRbBGfzXdOGpiIiIiMjXanof9osJfvF0XLnpR1WxzFzgGDPrRpCoXwJ8t6TQ3bcBbUuem9ks4CZ3n1fDmEREREREGryanmE/nuCOLwuBBcCjQM+qFnD3QuBG4B/A58CL7r7YzO4Of4RJRERERESqYe5e/UxmLwLbganhpO8CLdz9ojjGVqn+/fv7vHk6CS8iIiIiDYuZzXf3CsPDazokppe7R99D/V0zW1I7oYmIiIiISCw1HRLzqZmdWPLEzAYBOs0tIiIiIhJnNT3D3g/4yMzWhM87A8vM7DPA3b1PXKITERERETnE1TRhHxHXKEREREREpFI1StjdfXW8AxERERERkYpqOoZdRERERETqgRJ2EREREZEEpoRdRERERCSBKWEXEREREUlgSthFRERERBKYEnYRERERkQSmhF1EREREJIEpYRcRERERSWBK2EVEREREEpgSdhERERGRBKaEXUREREQkgSlhFxERERFJYErYRUREREQSmBJ2EREREZEEpoRdRERERCSBJdd3ALVh7969rFu3joKCgvoORQ5RqampdOzYkZSUlPoORURERBqYBpGwr1u3jmbNmtG1a1fMrL7DkUOMu5Obm8u6devo1q1bfYcjIiIiDUyDGBJTUFBAmzZtlKxLvTAz2rRpo294REREJC4aRMIOKFmXeqX+JyIiIvHSYBJ2EREREZGGSAm77LdXX32VJUuW7PNyr732Gvfdd18cIhIRERFpeJSwJ7CioqL6DqFK+5OwFxYWct5553Hbbbft0zIiIiIih6q4JuxmNsLMlpnZCjOrkKGZ2XgzW2Jm/zGzt82sSzzjiadRo0bRr18/evbsyZNPPgnAE088wc0331w6z+TJk7nxxhsBmDJlCgMHDiQzM5PrrruuNDlPT0/npz/9KRkZGcyZM4e7776bAQMG0KtXL8aOHYu7AzB37lz69OlDZmYmN998M7169QKCJP/mm29mwIAB9OnThz/96U8VYs3KyuK4445jzJgx9OjRgwsuuICdO3cC8Pbbb9O3b1969+7N1Vdfze7duwG47bbbOP744+nTpw833XQTH330Ea+99ho333wzmZmZrFy5kpUrVzJixAj69evHaaedxtKlSwG48soruf766xk0aBC33HJLmXbIysrim9/8Jn369OH0009nzZo1lS4jIiIicshy97j8AUnASuAooBGwEDi+3DzDgCbh4xuA6dXV269fPy9vyZIlFabVtdzcXHd337lzp/fs2dNzcnJ806ZNfvTRR5fOM2LECH///fd9yZIlfs455/iePXvc3f2GG27wZ555xt3dAZ8+fXqFet3dL7vsMn/ttdfc3b1nz57+0Ucfubv7rbfe6j179nR39z/96U/+q1/9yt3dCwoKvF+/fr5q1aoysX755ZcO+AcffODu7ldddZXff//9vmvXLu/YsaMvW7bM3d2/973v+R/+8AfPycnxY4891ouLi93dfcuWLe7ufsUVV/hLL71UWu83v/lN/+KLL9zd/eOPP/Zhw4aVznf22Wd7YWGhu7tPmjTJf/CDH7i7+znnnOOTJ092d/ennnrKR44cWekyB4NE6IciIiJy8ALmeSX5bzzPsA8EVrj7KnffA7wAjCz3YeFdd98ZPv0Y6BjHeOLqkUceISMjgxNPPJG1a9eyfPly2rVrx1FHHcXHH39Mbm4uS5cu5ZRTTuHtt99m/vz5DBgwgMzMTN5++21WrVoFQFJSEueff35pve+++y6DBg2id+/evPPOOyxevJitW7eSl5fHSSedBMB3v/vd0vnfeustnn32WTIzMxk0aBC5ubksX768QrydOnXilFNOAeCyyy7jgw8+YNmyZXTr1o1jjz0WgCuuuILZs2fTokULUlNT+f73v89f//pXmjRpUqG+/Px8PvroIy688MLSbw02btxYWn7hhReSlJRUYbk5c+aUxv+9732PDz74oNplRERERA4l8fzhpCOBtVHP1wGDqpj/+8DfKysws7HAWIDOnTvXVny1ZtasWcycOZM5c+bQpEkThg4dWnpP7ksuuYQXX3yR4447jtGjR2NmuDtXXHEF9957b4W6UlNTS5PUgoICxo0bx7x58+jUqRMTJkyo9l7f7s6jjz7KGWecUeV85W9DWNVtCZOTk/nkk094++23efnll/njH//IO++8U2ae4uJiWrZsyYIFCyqto2nTplXGU1vLiIiIiDQ0CXHRqZldBvQH7q+s3N2fdPf+7t6/Xbt2dRtcDWzbto1WrVrRpEkTli5dyscff1xaNnr0aGbMmMG0adO45JJLADj99NN5+eWX2bRpEwCbN29m9erVFeotSc7btm1Lfn4+L7/8MgAtW7akWbNm/Otf/wLghRdeKF3mjDPO4PHHH2fv3r0AfPHFF+zYsaNC3WvWrGHOnDkAPP/885x66ql0796drKwsVqxYAcBzzz3HkCFDyM/PZ9u2bZx11ln84Q9/YOHChQA0a9aMvLw8AJo3b063bt146aWXgOCDQ8l8VTn55JNL4586dSqnnXZatcuIiIiIHErimbCvBzpFPe8YTivDzL4F/Bw4z913xzGeuBkxYgSFhYX06NGD2267jRNPPLG0rFWrVvTo0YPVq1czcOBAAI4//njuuecehg8fTp8+ffj2t79dZvhIiZYtW3LttdfSq1cvzjjjDAYMGFBa9tRTT3HttdeSmZnJjh07aNGiBQDXXHMNxx9/PCeccAK9evXiuuuuq/QuK927d+exxx6jR48ebNmyhRtuuIHU1FQmTZrEhRdeSO/evYlEIlx//fXk5eVxzjnn0KdPH0499VQefPBBIPj24P7776dv376sXLmSqVOn8tRTT5GRkUHPnj2ZMWNGtW336KOPMmnSJPr06cNzzz3Hww8/vG+NLyIiItLAmYd3Han1is2SgS+A0wkS9bnAd919cdQ8fYGXgRHuXnGgdSX69+/v8+bNKzPt888/p0ePHrUV+kEhPz+f9PR0AO677z42btxY42Q3KyuLc845h0WLFsUzxEPOodgPRUREpPaY2Xx3719+etzGsLt7oZndCPyD4I4xT7v7YjO7m+AK2NcIhsCkAy+FY6jXuPt58YqpIXnjjTe49957KSwspEuXLkyePLm+QxIRERGROIjbGfZ4qe4Me9fb3ojburPuOztudcvBT2fYRURE5EDEOsOeEBedioiIiIhI5ZSwJ4iS8eg1deWVV5beNSbavHnz+J//+R+g7C+rPvHEEzz77LOl0zds2HCAEQfef/99evbsSWZmJrt27Yo534QJE3jggQeqrCs7O5tBgwbRt29f3n///X2KY8GCBbz55pv7tIyIiIjIwSCe92GvF4k8bKWoqCjuPwTUv39/+vev8E0K119/fenjyZMn06tXLzp06HDA65s6dSq33347l1122QHX9fbbb9O7d2/+8pe/7POyCxYsYN68eZx11lkHHIeIiIhIItEZ9lqQlZXFcccdx5gxY+jRowcXXHABO3cGP+DatWtXbr31Vk444QReeuklpk2bRu/evenVqxe33nprmXp+8pOf0LNnT04//XSys7MB+POf/8yAAQPIyMjg/PPPL60XYObMmfTv359jjz2Wv/3tb0DwI07nnHNOhRhLznC//PLLzJs3jzFjxpCZmckbb7zBqFGjSuf75z//yejRoyss//bbb9O3b1969+7N1Vdfze7du/nLX/7Ciy++yJ133smYMWMqLPPrX/+aY489llNPPZVly5aVTl+5ciUjRoygX79+nHbaaSxdupQFCxZwyy23MGPGjNKz9W+99RYnnXQSJ5xwAhdeeCH5+fkAzJ07l5NPPpmMjAwGDhzItm3buOuuu5g+fTqZmZlMnz69prtOREREJOEpYa8ly5YtY9y4cXz++ec0b96ciRMnlpa1adOGTz/9lMGDB3PrrbfyzjvvsGDBAubOncurr74KwI4dO+jfvz+LFy9myJAh/PKXvwTgO9/5DnPnzmXhwoX06NGDp556qrTerKwsPvnkE9544w2uv/76an8FFeCCCy6gf//+TJ06lQULFnDWWWexdOnS0g8IkyZN4uqrry6zTEFBAVdeeSXTp0/ns88+o7CwkMcff5xrrrmG8847j/vvv5+pU6eWWWb+/Pm88MILpUNV5s6dW1o2duxYHn30UebPn88DDzzAuHHjyMzM5O677+biiy9mwYIF7Nixg3vuuYeZM2fy6aef0r9/fx588EH27NnDxRdfzMMPP8zChQuZOXMmTZs2LbPsxRdfvG87T0RERCSBKWGvJZ06deKUU04B4LLLLuODDz4oLStJIOfOncvQoUNp164dycnJjBkzhtmzZwMQiURK54teftGiRZx22mn07t2bqVOnsnhx6W3sueiii4hEIhxzzDEcddRRLF26dJ/jNjO+973vMWXKFLZu3cqcOXM488wzy8yzbNkyunXrxrHHHgvAFVdcURp3LO+//z6jR4+mSZMmNG/enPPOC+7WmZ+fz0cffcSFF15IZmYm1113XaU/GvXxxx+zZMkSTjnlFDIzM3nmmWdYvXo1y5Yto3379qU/ItW8eXOSkxvcyC4RERGRUsp0akl4H/lKnzdt2nS/67vyyit59dVXycjIYPLkycyaNatG69wXV111Feeeey6pqalceOGFcU2Ai4uLadmyJQsWLKhyPnfn29/+NtOmTSsz/bPPPotbbCIiIiKJSGfYa8maNWuYM2cOAM8//zynnnpqhXkGDhzIe++9R05ODkVFRUybNo0hQ4YAQSJbcteX6OXz8vJo3749e/furTDs5KWXXqK4uJiVK1eyatUqunfvXqNYmzVrRl5eXunzDh060KFDB+655x6uuuqqCvN3796drKwsVqxYAcBzzz1XGncsgwcP5tVXX2XXrl3k5eXx+uuvA8EZ8W7duvHSSy8BQWK+cOHCCsufeOKJfPjhh6Xr3LFjB1988QXdu3dn48aNpUNs8vLyKCwsrLBNIiIiIg2FEvZa0r17dx577DF69OjBli1buOGGGyrM0759e+677z6GDRtGRkYG/fr1Y+TIkUBwFv6TTz6hV69evPPOO9x1110A/OpXv2LQoEGccsopHHfccWXq69y5MwMHDuTMM8/kiSeeIDU1tUaxXnnllVx//fVlbsU4ZswYOnXqVOkP/6SmpjJp0iQuvPBCevfuTSQSKXPXmcqccMIJXHzxxWRkZHDmmWeWDmGB4M4yTz31FBkZGfTs2ZMZM2ZUWL5du3ZMnjyZSy+9lD59+nDSSSexdOlSGjVqxPTp0/nhD39IRkYG3/72tykoKGDYsGEsWbJEF52KiIhIg9Pgfum0PmRlZXHOOeewaNGieovhQN1444307duX73//+/UdykGrvvuhiIiIHNxi/dKpxrAL/fr1o2nTpvz+97+v71BEREREpBwl7LWga9euB/XZ9fnz59d3CCIiIiISg8awi4iIiIgkMCXsIiIiIiIJTAm7iIiIiEgCU8IuIiIiIpLAlLAniK5du5KTkwPAySefvF91/OY3vynzfH/rKW/p0qVkZmbSt29fVq5cWSt1xlP5dqipa665hiVLltRyNCIiIiIHRvdhr2XujrsTiezbZ6GuXbsyb9482rZtu9/rTk9PJz8/f7+Xj+W+++6jsLCQO+64o8z0/d3WeNufdigqKiIpKemAlkmkfigiIiIHn1j3YU+sTKu2TDq74t8nfw7K9uysvPzfU4PyHbkVy6qRlZVF9+7dufzyy+nVqxdr167l/vvvZ8CAAfTp04df/OIXpfOOGjWKfv360bNnT5588slK60tPTwfgrrvuIjMzk8zMTI488kiuuuqqmHXcdttt7Nq1i8zMTMaMGVOmHnfn5ptvplevXvTu3bv0l0BnzZrF0KFDueCCCzjuuOMYM2YM5T/Avfnmmzz00EM8/vjjDBs2rNJtjVX3kCFDGDlyJEcddRS33XYbU6dOZeDAgfTu3bvSM/UTJkzge9/7HieddBLHHHMMf/7zn6uMf+PGjQwePJjMzEx69erF+++/X2k7TJkyhYEDB5KZmcl1111HUVFRafv89Kc/JSMjgzlz5jB06FBKPgxOmzaN3r1706tXL2699dYy+yZ6GREREZG4KzlLerD8HfmNnr5rT6FHW7JkSZnn/vRZFf/+9WRQtntH5eWfTgnK83MqllXjyy+/dDPzOXPmuLv7P/7xD7/22mu9uLjYi4qK/Oyzz/b33nvP3d1zc3Pd3X3nzp3es2dPz8nJcXf3Ll26eHZ2tru7N23atEz9W7Zs8V69evm8efOqrKP8ciXPX375Zf/Wt77lhYWF/t///tc7derkGzZs8HfffdebN2/ua9eu9aKiIj/xxBP9/fffr7B9v/jFL/z++++vdFurqrtFixa+YcMGLygo8A4dOvhdd93l7u4PPfSQ/+hHP6p0PX369PGdO3d6dna2d+zY0devXx9zHQ888IDfc8897u5eWFjo27dvr9AOS5Ys8XPOOcf37Nnj7u433HCDP/PMM+7uDvj06dNL5x0yZIjPnTvX169f7506dfJNmzb53r17fdiwYf7KK69Uuky0Cv1QREREZB8A87yS/Peg++Gk4l1r+NFDf+bGSy+ld8cWlc901RuxK2jUpOrypm2qLo+hS5cunHjiiQC89dZbvPXWW/Tt2xeA/Px8li9fzuDBg3nkkUd45ZVXAFi7di3Lly+nTZs2Met1dy677DLGjx9Pv379APa5jg8++IBLL72UpKQkDj/8cIYMGcLcuXNp3rw5AwcOpGPHjgBkZmaSlZXFqaeeWuNtraruAQMG0L59ewCOPvpohg8fDkDv3r159913K6175MiRpKWlkZaWxrBhw/jkk09irmPAgAFcffXV7N27l1GjRpGZmVmhvrfffpv58+czYMAAAHbt2sVhhx0GQFJSEueff36FZebOncvQoUNp164dAGPGjGH27NmMGjUq5jIiIiIi8XLQJexbU/ayvuVDTJk8iw6D7mLcN4+r75AAaNq0aeljd+f222/nuuuuKzPPrFmzmDlzJnPmzKFJkyYMHTqUgoKCKuudMGECHTt2LB0Osz91VKVx48alj5OSkigsLKx2mehtrWndkUik9HkkEom5HjOr8nm0wYMHM3v2bN544w2uvPJKxo8fz+WXX15mHnfniiuu4N57762wfGpq6j6PW9+fZUREREQOxEE3ht32tGGbpfJ/HRexYfF3ue7RF9hbVFzfYZVxxhln8PTTT5de+Lh+/Xo2bdrEtm3baNWqFU2aNGHp0qV8/PHHVdbz+uuvM3PmTB555JHSaVXVkZKSwt69eyvUc9pppzF9+nSKiorIzs5m9uzZDBw4sFa2tbbrnjFjBgUFBeTm5jJr1iwGDBgQcx2rV6/m8MMP59prr+Waa67h008/Bcq2w+mnn87LL7/Mpk2bANi8eTOrV6+uMoaBAwfy3nvvkZOTQ1FREdOmTWPIkCH7vU0iIiIiB+KgO8N+dLvDaLv3ftJ2PMibrdZwVMG9bMp7huy8AtqmN67yjGxdGT58OJ9//jknnXQSEFyoOGXKFEaMGMETTzxBjx496N69e+mwklgefPBB1q9fX5oAn3feefz85z+PWcfYsWPp06cPJ5xwAlOnTi2dPnr0aObMmUNGRgZmxu9+9zuOOOIIli5desDbWtt19+nTh2HDhpGTk8Odd95Jhw4dYq7jmWee4f777yclJYX09HSeffbZStvhnnvuYfjw4RQXF5OSksJjjz1Gly5dYsbQvn177rvvPoYNG4a7c/bZZzNy5Mj92h4RERGRA3VQ3tbxX5/M5akPVjHp/Sk0SsrmjsFX075zN5o2Mjq0akbjFA1ZOBhNmDCB9PR0brrppvoOZb/oto4iIiJyIBrUbR2TIsbYwUfzzDXjadb0YgBaJOVQZOtYn72R3PzdFW5PKCIiIiJyMDooz7BH/3DS3qJiPv3PIloe0RpP3kaxQdPCZDypPR1apdMo+aD8TCIHIZ1hFxERkQMR6wz7QTeGvbyUpAjNU1Po1OYI1m1uSnLkK/KTC2nsa1i9qQ1tWrShVZOUhBjbLiIST7t372bx4sXk5OTQtm1bevbsWeZuTfsiOzubP/3pT6xatYqjjjqK6667rvRWp/UVU23VtX37dl5//XXWrFlD586dOffcc2nevPl+xVRbamvbarO9a4v2W93VU5sSMaZDWVzPsJvZCOBhIAn4i7vfV668MfAs0A/IBS5296yq6ix/hh2+PrNZXOx8lVdA3s5NFKXkY3ubs6eoGc1TUziyVRopSTrbLvGjM+xSn9asWcODDz7I1q1bMTPcnZYtWzJ+/Hg6d+68T3W98sorjB07tswtY1NTU3nyyScZPXp0vcRUW3XNmTOHcePGkZeXVzqtWbNmTJw4sfRGAXWttratNtu7tmi/1V09tSkRYzpUxDrDHreE3cySgC+AbwPrgLnApe6+JGqecUAfd7/ezC4BRrv7xVXVW1XCXmLH7kLWbslnT3ir75ZJOeymKRb5+pOhE8FJCh9VvCe4k4QTwXDsgMqLMYoqlBeTBFWWJwNWB+VFGBVvi1lMCkC15RGKYJ/LLVw/YduX74NR5V4IVrbcMbym5ZXU//W+r0l5xdtkxipfn7WKhz76kr2kUWjNiXgRjcmpsPwemlBkzTAvJJXcSsrTKbKmRHwPjdlSoXw36RRbU5J8N43YWkl5c4otjWQvIIVtFcoLaIFbKsm+ixS2V1LeErfGpPhOksmrUL6LVmCNSPEdJJNfoXwnbTBLppHnk8SOiuXWFiOJFM8jmZ2VlLfDiNDIt5PErnKlFi4fobFvJcLuMqWOscvaYRipvhUrV15sEXYTnCVO9c1Yuf1bbEnspi0AacW5YGVf20WWzB6CHylrUpyLlysvtBT20jpY3rMp3/cLrRF7aRW7nMbstZbgThrZlO+be0ml0FpgXkwq2V9vtzubsrPZ7Y0pthZEKKZJJJei4mD5w9u1A7Ma9b3dRY1Z9cUSmiZvxyJfX8DvxUXsLG5Ct2MyaBwprLbvJftWNmUHMSZFgm84d3pz9hQm04jddD4iDcp98xmr75VsX15xc5IjqTRiF40i+RW2r7q+l1fcii9XrSaVfFIbfb3vioqKMIM2XfqTHEmu075Xsm1FHmGPBX2vaWQrxcV7ymxbdX1vL8ms2bgbB1qlbMXDvlXSRq0PO5JCq6Jv7mff+7q84nGvZNsACq0pe70pEQppzOYy2wZVH/eKi4tY9mUue4obk5pUTFpy0DdK9lvnLl3Yay3r9LgXvW1JESOvuBVGMknFeTSK7CqzbRD7uFfat4takZyUQqrlkWwF5fp2pE6Pe87eMttWRAq7iltSWFREs8gWDj+sTZltq6/j3tflDec9F/byt/Hn1fmQmIHACndfBWBmLwAjgSVR84wEJoSPXwb+aGbmB/gpomnjZI45rAX/3VbA9h357EouoNDKduBGRY0o2NuONHazO7XiDm5U2JiCwrY0tZ0UNK64A1MK0ygobE265bOrccUdlFLYlILCljSPbGdHo4ov/uS9zdhd1JwWka3kN6r4xhLZ24K9Rem0TNpMXkr5Nw6wPa0oLG5Cy6Qc8lJ2Vyj3PW0oLk6lVdImtqdUTDqLdx+Gewqtkr9ie3LFDxxFu48AT6JV8n/Znlwx4S/a3R48QquUjWxPqpiwFxV0AIyWKRvIS6q4O4sKjgSgRcoG8svd1CcC7A3Lmzdaz45I2Tf1JIc9u4PyZo3Ws7NcebIbu3d3ACC98Xp2lUsKUoqNgj1BeZPG69ldrrxRcYSCPe2JUEyjxhvYW6E8iYI9R5BCEcWpGykiKC+MbGNF67vpuu0wlm4YTzfbyFfHPsSecvF12dqJpRt/QE9bwYrj/lKhbTrnfoOlX11D/+R/s+yY6RXKO2b3YmnOZZzaaDYLj36zQvkRXw1g+ebz+Wbq35nb7b0K5W02DiFr65mMaPq/fNh5boXyZuvPYsP2wZzTbArvdVxUobzRmgvJ3dGPUS3+zNsdVlYoL866ih27uvOdVo/yzyPWVyjfsepHFO9uz3faPMA/D6v42stfcQu+tzXfaXcv/2xb8eCW/8WdeFFTRh9+DzNbV3xt5C39FXgKI9v/gndalu3bSQ5blwZf9J195J3MLvdtepMi+OqLoHx4pzuYk172W7lWeyOsWfEbAIZ1+RnzmpQ9hB62O5mVq+4B4ORuP+Oz1EZlyjvsasyyrF8CcMLRP2N5o7LlnXY2ZenqO2nKLjp9407Wp5Stv0t+S5auvY3D2ELjY3/D1ugf8WoDXbcdxmdh39v+jYmlfa/kCFSTvrci5xr6H7aVZcdMr/BR+tjsXnyefUzN+165H2D+uu+9xYdt9rHvtYnue1PL9L2S7atR32vWnjNi9L2VK9rXT99rE/S9LWHfG9BhQmnfK9m2mvS97ZGg7/Xu/IsKfa9ZPPsexD7uhX2gy9ZOLAr73pqw70W/M1Z33Ovmvfg85zJOqKTvraKejntR/bu077V+in8esb5Cyl/lca9NyXGvBd9p+1CZvldST50f96K2rdXeCFtW/AYi0L/LLxPruEcVfa9k+YPoPXdb+roK5SXimbAfCayNer4OGBRrHncvNLNtBN2kTG82s7HAWKDGX8UkRYwjW6XRPC2Z/24x0mxrmfI9xWlAcFYirbDimKw9xU2C/96o0vLd4fJ7qLy8oCg1mM8bk1a4p2J5cbBMgaeSVljI4AFDefX//krrNq254NyLeO7V/wvnSyOtsGJCvNNTwjiakBa+Nic+/DjjfnQDADs8hctHDeelGa+QVljxxZ0fniHeXdyUtMKKv5Sa75GwHZqy4fMl/OiGH2Nm/PHPj9K5a1d2eHhWpKgpaV52+xxjR0kSW9SUNC/3aZ5I6fmFoqKmpHnZg0uxf33eurioKWnFZT8wFHnUi7WoCWnFZdvnjw//iSt/8HMArLAJaVa2vChsO4DkwjQi4Rn623/6M64eexXdju0ZbkeElMI0ksudwS8M910REZoWppYmNY2KksnY9A02FBwLQK43IyP7WLzc8msLegGw0duQsekblLd6V2YwX1GHSstX7uwNQFZR10rLl+0Ivm1atfdYMjZVTFqW7AziW767JxmbKn4YXbira1Be0IeMTRX7xqfhh6Xlu04gY1PFa0P+tTc4k7Ni5wAyNqVVKP+wMHi3+HLnIDI2LStTVkSEOUXBa29N/olkFK8qU76HZD4pDg726/NOJKNwbZnyAm/EvLDvbtp+Ehl7NpYp3+lpfBo+3rbtRDIKyr5x5hen81X4eNfWgWTs3FqmfHtRS9aEj4u39Ccjv+w3DFuL2pY+brz5BDKSy7bf5sL2pY9b5maQkVT2tZGzp1O4nSkckduTtpGyff+r3UcFcZLGcTk9KC7Xt9X31PdAfU99T30v2sHU9xoVdwA+qDAPxHdIzAXACHe/Jnz+PWCQu98YNc+icJ514fOV4TwVT32EajIkpjx3Z3dhMXVxQxx3x92JRPZtvPxxxx7NBx/9i7Zt21Y/cwztWrcge3PFs/0H6oH7f0thYSG33f7zMtP3d1vjbX/aoaioiKRyn9r3dZnlXywlpU2nfapDpDZ8/vnnPP/883To0KFC2YYNG/jud79b4+srnnzySSZNmkTLFi0qlG3dto2rrrqKsWPH1mlMtVXXm2+8wcTHH+fwww+vUPbVV18x7oYbOOvss2sUU22prW2rzfauLdpvh/Z+k/1zfIcWdT4kZj0Qnb10DKdVNs86M0sGWkAlA4z20VX/d1WFaWd0PYNLjruEXYW7GDdzXIXykd8YyahvjGJLwRbGzxpfpmzSiElVri8rK4szzjiDQYMGMX/+fN58801efPFFXnzxRXbv3s3o0aP55S+Dr4NGjRrF2rVrKSgo4Ec/+lHpG58BaY2SSGuURHp6Ovn5+dx111289tprQHDHhuHDhzNp0qRK67jtttvYtWsXJw3sR8+ePZk6dWppPe7OLbfcwt///nfMjDvuuIOLL76YWbNmMWHCBNq2bcuiRYvo168fU6ZMKXNHnTfffJPHHn2EpKQkZs96l0mTJlXY1j/+8Y+V1v2LX/yCli1b8tlnn3HRRRfRu3dvHn74YXbt2sWrr77K0UcfXaYdJ0yYwMqVK1mxYgU5OTnccsstXHvttTHj37hxIxdffDHbt2+nsLCQxx9/nDfeeKNCO0yZMoVHHnmEPXv2MGjQICZOnEhSUtDO1113HTNnzuSxxx7jjjvu4IEHHqB///5MmzaN3/zmN6W/dPrb3/4WoMIyp556amn8KUkRerSv3zsWyKHpqNaZzH5tGsVb19O6devS6Zs3b6ZjeoRzTu1Lo3JfQ8fys3FXMOWPvyUv7780a9asdHpeXh4pkQh3/vBqWreuvp/XZky1VdeRF53NlMd+x47122jVqlXp9C1bttA8EuG6S84lPT29RjHVltrattps79qi/XZo7zepXfE8NToXOMbMuplZI+AS4LVy87wGXBE+vgB450DHr9eX5cuXM27cOBYvXsyyZctYvnw5n3zyCQsWLGD+/PnMnj0bgKeffpr58+czb948HnnkEXJzY38+ufvuu1mwYAGzZs2idevW3HjjjTHruO+++0hLS2PBggVMnTq1TD1//etfWbBgAQsXLmTmzJncfPPNbNwYfGX273//m4ceeoglS5awatUqPvzwwzLLnnXWWVx//fX85Cc/4d13362wrfPmzYtZ98KFC3niiSf4/PPPee655/jiiy/45JNPuOaaa3j00Ucr3eb//Oc/vPPOO8yZM4e7776bDRs2xIz/+eef54wzzigty8zMrNAOn3/+OdOnT+fDDz9kwYIFJCUllbbPjh07GDRoEAsXLiyTeG/YsIFbb72Vd955hwULFjB37lxeffXVKpcRqU+NGzdm/PjxRCIRsrKyWL16NVlZWUQiEcaPH79Pb67t2rXjySefJBKJkJubW/oXiUR48skny7yB11VMtVVX8+bNmThxIpFIhHXr1pX+RSIRJk6cWOdJH9TettVme9cW7be6q6c2JWJMEscz7OGY9BuBfxDc1vFpd19sZncD89z9NeAp4DkzWwFsJkjqD1hVZ8TTktOqLG+V2qraM+qV6dKlCyeeeCIAb731Fm+99RZ9+/YFID8/n+XLlzN48GAeeeQRXnnlFQDWrl3L8uXLadOmTcx63Z3LLruM8ePH069fP4B9ruODDz7g0ksvJSkpicMPP5whQ4Ywd+5cmjdvzsCBA+nYsSMAmZmZZGVlVZuIRm9rVXUPGDCA9u2DsWtHH300w4cPB6B3796lyX95I0eOJC0tjbS0NIYNG8Ynn3wScx0DBgzg6quvZu/evYwaNYrMzMwK9b399tvMnz+fAQMGALBr1y4OO+wwAJKSkjj//PMrLDN37lyGDh1aes/pMWPGMHv2bEaNGhVzGZH61rlzZ373u9+xaNEicnNzadOmDb169dqvN9fR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\n",
      "text/plain": [
       "<Figure size 900x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "figsize(12.5, 4)\n",
    "\n",
    "plt.plot(t, mean_prob_t, lw=3, label=\"average posterior \\nprobability \\\n",
    "of defect\")\n",
    "plt.plot(t, p_t[0, :], ls=\"--\", label=\"realization from posterior\")\n",
    "plt.plot(t, p_t[-2, :], ls=\"--\", label=\"realization from posterior\")\n",
    "plt.scatter(temperature, D, color=\"k\", s=50, alpha=0.5)\n",
    "plt.title(\"Posterior expected value of probability of defect; \\\n",
    "plus realizations\")\n",
    "plt.legend(loc=\"lower left\")\n",
    "plt.ylim(-0.1, 1.1)\n",
    "plt.xlim(t.min(), t.max())\n",
    "plt.ylabel(\"probability\")\n",
    "plt.xlabel(\"temperature\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "papermill": {
     "duration": 0.024778,
     "end_time": "2021-08-01T05:19:14.483939",
     "exception": false,
     "start_time": "2021-08-01T05:19:14.459161",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "**整体的概率值太小，在图上显示不明确了。**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:19:14.536903Z",
     "iopub.status.busy": "2021-08-01T05:19:14.536191Z",
     "iopub.status.idle": "2021-08-01T05:19:14.811503Z",
     "shell.execute_reply": "2021-08-01T05:19:14.812030Z",
     "shell.execute_reply.started": "2021-08-01T05:15:38.811394Z"
    },
    "papermill": {
     "duration": 0.30352,
     "end_time": "2021-08-01T05:19:14.812206",
     "exception": false,
     "start_time": "2021-08-01T05:19:14.508686",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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bhGJiIiIiEhY/SjqDHD3Pmb2FYC7rzezhnGOS0REREREiO4M+w4zqwc4gJm1AYrjGpWIiIiIiADRJexjgdeB/czsHmAacG9coxIRERERESCKITHuPsnMZgEnAAac6e7z4x6ZiIiIiIhUn7Cb2XPufiGwoIIyERERERGJo2iGxGRGTgTj2fvGJxwREREREYlUacJuZrebWSHQ08w2mllhML0aeLPWIhQRERER2YdVmrC7+73ungbc7+7p7p4WvFq5++21GKOIiIiIyD4rmotObzezFsAhQGpE+SfxDExERERERKK76PRy4AagAzAbOByYDhwf18hERERERCSqi05vAPoBy9z9OKA3UBDPoEREREREJCSahH2ru28FMLNG7r4A6BrfsEREREREBKIYEgOsNLMM4A3g32a2HlgWz6BERERERCQkmotOzwrejjazD4HmwP+La1QiIiIiIgJENyQGM2thZj2BQmAlkBXXqEREREREBIjuLjF3AxcDS4HioNjRXWJEREREROIumjHs5wIHufv2eAcjIiIiIiKlRTMkZg6QEec4RERERESkAtGcYb8X+MrM5gDbSgrd/fS4RSUiIiIiIkB0CfszwJ+Ab/hpDLuIiIiIiNSCaBL2IncfG/dIRERERESknGgS9qlmdi8whdJDYr6MW1QiIiIiIgJEl7D3Dv4eHlEW1W0dzWww8AhQD3jK3e+roM65wOigzf+4+wVRxCQiIiIisk+I5kmnx+1Ow2ZWD3gMOInQw5ZmmtkUd58XUecQ4HbgSHdfb2b77c66RERERETqqkoTdjMb6e7Pm9moiua7+0PVtN0fWOzuS4P2XgLOAOZF1LkCeMzd1wdtrq5J8CIiIiIidV1V92FvGvxNq+DVLIq22wMrIqZXBmWRDgUONbNPzWxGMISmHDO70sxyzSx3zZo1UaxaRERERKRuqPQMu7s/Ebx9z90/jZxnZkfGcP2HAMcCHYBPzKyHuxeUiWU8MB4gJyfHY7RuEREREZGkF82TTh+Nsqys74GOEdMdgrJIK4Ep7r7D3b8DFhFK4EVEREREhKrHsA8EjgDalBnHnk7ori/VmQkcYmZdCCXq5wFl7wDzBnA+MMHMWhMaIrM06uhFREREROq4qu4S05DQWPX6hMatl9gInFNdw+6+08yuB/5FKMH/u7vPNbO7gFx3nxLMO9nM5gG7gJvd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jBkz+PDDD1m6dClt27bF3Rk+fDgjR47kxx9/TOQmiYiIiEiSqBNPOo1U1ZnweLrsssu47LLLALjjjjvo0CF0h8r9998/XOeKK65gyJAhpZZzd8aMGcNLL73EL3/5S/785z+Tl5fH2LFjueeee8L1Dj74YJYvX87GjRt1ll1ERERkH5IUd4mpC1avDg3BX758Oa+99hoXXHABAKtWrQrXef3118nKyiq13LPPPstpp51Gy5YtKSoqIiUlhZSUFIqKikrVa9KkCZdddhk33HAD27dvB2DNmjVMnjw5npslIiIiIglW586wJ8rZZ59Nfn4+DRo04LHHHiMjIwOAW265hdmzZ2NmdO7cmSeeeCK8TFFRERMnTuTdd98FYNSoUZx22mk0bNiQF154odw6xowZw+9+9zu6d+9OamoqTZs25a677qqV7RMRERGRxDB3T3QMNZKTk+O5ubmlyubPn0+3bt0SFJHsDXSMiIiISLIzs1nunlO2XENiRERERESSmBJ2EREREZEkpoRdRERERCSJKWEXEREREUliSthFRERERJKYEnYRERERkSSmhF122xtvvMG8efNqvNyUKVO477774hCRiIiISN2jhD2J7dq1K9EhVGl3EvadO3dy+umnc9ttt9VoGREREZF9lRL2GDnzzDPp27cvmZmZjB8/HoDHH3+cm2++OVxn4sSJXH/99QA8//zz9O/fn+zsbK666qpwct6sWTNuvPFGevXqxfTp07nrrrvo168fWVlZXHnllZQ86GrmzJn07NmT7Oxsbr75ZrKysoBQkn/zzTfTr18/evbsWerJqiXy8vI47LDDGDFiBN26deOcc86hqKgIgPfff5/evXvTo0cPLr30UrZt2wbAbbfdRvfu3enZsyc33XQTn332GVOmTOHmm28mOzubJUuWsGTJEgYPHkzfvn056qijWLBgAQAXX3wxV199NQMGDOCWW24p1Q95eXkcf/zx9OzZkxNOOIHly5dXuIyIiIjIPsvd96pX3759vax58+aVK6tt+fn57u5eVFTkmZmZvnbtWl+9erUfdNBB4TqDBw/2qVOn+rx583zIkCG+fft2d3e/5ppr/JlnnnF3d8Bffvnlcu26u48cOdKnTJni7u6ZmZn+2Wefubv7rbfe6pmZme7u/sQTT/jdd9/t7u5bt271vn37+tKlS0vF+t133zng06ZNc3f3Sy65xO+//37fsmWLd+jQwRcuXOju7hdeeKE//PDDvnbtWj/00EO9uLjY3d3Xr1/v7u4XXXSRT548Odzu8ccf74sWLXJ39xkzZvhxxx0Xrvfzn//cd+7c6e7uEyZM8Ouuu87d3YcMGeITJ050d/enn37azzjjjAqX2VPJcIyIiIiIVAXI9QryX51hj5GxY8fSq1cvDj/8cFasWMG3335LmzZtOPDAA5kxYwb5+fksWLCAI488kvfff59Zs2bRr18/srOzef/991m6dCkA9erV4+yzzw63++GHHzJgwAB69OjBBx98wNy5cykoKKCwsJCBAwcCcMEFF4Trv/vuuzz77LNkZ2czYMAA8vPz+fbbb8vF27FjR4488kgARo4cybRp01i4cCFdunTh0EMPBeCiiy7ik08+oXnz5qSmpnLZZZfx2muv0aRJk3Ltbdq0ic8++4xhw4aF/9dg1apV4fnDhg2jXr165ZabPn16OP4LL7yQadOmVbuMiIiIyL6kfqIDqAs++ugj3nvvPaZPn06TJk049thj2bp1KwDnnXcer7zyCocddhhnnXUWZoa7c9FFF3HvvfeWays1NTWcpG7dupVrr72W3NxcOnbsyOjRo8PtVsbdefTRRznllFOqrGdmVU5Hql+/Pl988QXvv/8+r776Kn/961/54IMPStUpLi4mIyOD2bNnV9hG06ZNq4wnVsuIiIiI1DU6wx4DGzZsoEWLFjRp0oQFCxYwY8aM8LyzzjqLN998kxdffJHzzjsPgBNOOIFXX32V1atXA7Bu3TqWLVtWrt2S5Lx169Zs2rSJV199FYCMjAzS0tL4/PPPAXjppZfCy5xyyin87W9/Y8eOHQAsWrSIzZs3l2t7+fLlTJ8+HYAXXniBQYMG0bVrV/Ly8li8eDEAzz33HMcccwybNm1iw4YNnHbaaTz88MP85z//ASAtLY3CwkIA0tPT6dKlC5MnTwZCPxxK6lXliCOOCMc/adIkjjrqqGqXEREREdmXKGGPgcGDB7Nz5066devGbbfdxuGHHx6e16JFC7p168ayZcvo378/AN27d2fMmDGcfPLJ9OzZk5NOOqnU8JESGRkZXHHFFWRlZXHKKafQr1+/8Lynn36aK664guzsbDZv3kzz5s0BuPzyy+nevTt9+vQhKyuLq666qsK7rHTt2pXHHnuMbt26sX79eq655hpSU1OZMGECw4YNo0ePHqSkpHD11VdTWFjIkCFD6NmzJ4MGDeKhhx4CQv97cP/999O7d2+WLFnCpEmTePrpp+nVqxeZmZm8+eab1fbdo48+yoQJE+jZsyfPPfccjzzySM06X0RERKSOMw/uOrK3yMnJ8dzc3FJl8+fPp1u3bgmKKDE2bdpEs2bNALjvvvtYtWpV1MluXl4eQ4YMYc6cOfEMMansi8eIiIiI7F3MbJa755Qt1xj2vdQ//vEP7r33Xnbu3MkBBxzAxIkTEx2SiIiIiMSBEva91PDhwxk+fPhuLdu5c+d96uy6iIiIyN6sTo5hHz16NGYWfs2aNYtZs2aVKhs9ejQA7dq1C5f17dsXgCuvvLJU3R9++CGBWyMiIiIi+7I6m7B76Yct0bdv31JlJQn7Dz/8EC6bNWsWAOPHjy9Vt127dnGPuWQ8erQuvvji8F1jIuXm5vKrX/0KKP1k1ccff5xnn302XB6rHyFTp04lMzOT7OxstmzZUmm90aNH88ADD1TZ1po1axgwYAC9e/dm6tSpNYpj9uzZvPPOOzVaRkRERGRvsNcNidm5Yxe7dhVTr97e91tj165dcX8QUE5ODjk55a5V4Oqrrw6/nzhxIllZWTH5ITJp0iRuv/12Ro4cucdtvf/++/To0YOnnnqqxsvOnj2b3NxcTjvttD2OQ0RERCSZ7HVZ78JFi3jykdfZtnVHokMJy8vL47DDDmPEiBF069aNc845h6KiIiA0XvzWW2+lT58+TJ48mRdffJEePXqQlZXFrbfeWqqd3/zmN2RmZnLCCSewZs0aAJ588kn69etHr169OPvss8PtArz33nvk5ORw6KGH8vbbbwOhhzgNGTKkXIwlZ7hfffVVcnNzGTFiBNnZ2fzjH//gzDPPDNf797//zVlnnVVu+ffff5/evXvTo0cPLr30UrZt28ZTTz3FK6+8wp133smIESPKLXPPPfdw6KGHMmjQIBYuXBguX7JkCYMHD6Zv374cddRRLFiwgNmzZ3PLLbfw5ptvhs/Wv/vuuwwcOJA+ffowbNgwNm3aBMDMmTM54ogj6NWrF/3792fDhg38/ve/5+WXXyY7O5uXX3452l0nIiIikvwih37sDa+WGft5s6bNfdQ193rB+s3u7j5v3jxPpO+++84BnzZtmru7X3LJJX7//fe7u/sBBxzgf/rTn9zd/fvvv/eOHTv66tWrfceOHX7cccf566+/7u7ugD///PPu7v7HP/7Rr7vuOnd3X7t2bXg9v/3tb33s2LHu7n7RRRf5Kaec4rt27fJFixZ5+/btfcuWLf7hhx/6z3/+c3d3nzBhQridP/zhD+GYjjnmGJ85c6a7uxcXF3vXrl199erV7u5+/vnn+5QpU0pt35YtW7xDhw6+cOFCd3e/8MIL/eGHHw7HMXny5HJ9kpub61lZWb5582bfsGGDH3TQQeH1H3/88b5o0SJ3d58xY4Yfd9xx5eJds2aNH3XUUb5p0yZ3d7/vvvv8j3/8o2/bts27dOniX3zxhbu7b9iwwXfs2FFq2Yok+hgRERERqQ6Q6xXkv3vdGfamTdK54coxPD/5MZ565B1WrVyf6JAA6NixI0ceeSQAI0eOZNq0aeF5JXdzmTlzJsceeyxt2rShfv36jBgxgk8++QSAlJSUcL3I5efMmcNRRx1Fjx49mDRpEnPnzg23e+6555KSksIhhxzCgQceyIIFC2oct5lx4YUX8vzzz1NQUMD06dM59dRTS9VZuHAhXbp04dBDDwXgoosuCsddmalTp3LWWWfRpEkT0tPTOf3004HQ/eM/++wzhg0bRnZ2NldddVWFD42aMWMG8+bN48gjjyQ7O5tnnnmGZcuWsXDhQtq2bRt+iFR6ejr16+91I7tEREREorbXZTq7dhWT1qgDd9/2NGYp/Oa6O7lt9BWJDgszq3S6adOmu93exRdfzBtvvEGvXr2YOHEiH330UVTrrIlLLrmEoUOHkpqayrBhw+KaABcXF5ORkcHs2bOrrOfunHTSSbz44oulyr/55pu4xSYiIiKSjPa6M+xpzRvjDj9+v5GNG4pYv+FHVq9Zzdo16/EEPrV1+fLlTJ8+HYAXXniBQYMGlavTv39/Pv74Y9auXcuuXbt48cUXOeaYY4BQIlty15fI5QsLC2nbti07duxg0qRJpdqbPHkyxcXFLFmyhKVLl9K1a9eoYk1LS6OwsDA83a5dO9q1a8eYMWO45JJLytXv2rUreXl5LF68GIDnnnsuHHdljj76aN544w22bNlCYWEhb731FhA6I96lSxcmT54MhBLz//znP+WWP/zww/n000/D69y8eTOLFi2ia9eurFq1ipkzZ4b7Z+fOneW2SURERKSu2OsS9mZpqfzyd4Pp1qsDWzZt56i+59E4tSnLV+Sx+sd1FBcnJmnv2rUrjz32GN26dWP9+vVcc8015eq0bduW++67j+OOO45evXrRt29fzjjjDCB0Fv6LL74gKyuLDz74gN///vcA3H333QwYMIAjjzySww47rFR7nTp1on///px66qk8/vjjpKamRhXrxRdfzNVXX13qVowjRoygY8eOdOvWrVz91NRUJkyYwLBhw+jRowcpKSml7jpTkT59+jB8+HB69erFqaeeGh7CAqE7yzz99NP06tWLzMxM3nzzzXLLt2nThokTJ3L++efTs2dPBg4cyIIFC2jYsCEvv/wyv/zlL+nVqxcnnXQSW7du5bjjjmPevHm66FRERETqHEvkWendkZOT47m5uQB8vyyft1/5kp5HtKRD+440aNAQS9lFqzYZ1K8f39snRsrLy2PIkCF79dNDr7/+enr37s1ll12W6FDiYv78+RX+GBERERFJFmY2y93L3Z97rzvDHqn9Aa248qYTadK0IQ0aNKS4uJh16/KZP28+RUWVP8RHSuvbty9ff/11TO6lLiIiIiKxFdeLTs1sMPAIUA94yt3vKzO/EfAs0BfIB4a7e14N10HDRvXZr206hQVbgdYUbipg4YIFHHBAF1q2yojFplSpc+fOe/XZ9ZInvIrI3m3btm3MnTuXtWvX0rp1azIzM2nUqNFutbVmzRqeeOIJli5dyoEHHshVV11FmzZtEhpTrNrauHEjb731FsuXL6dTp04MHTqU9PT03YopVmK1bbHs71jRfqu9dmIpGWPal8VtSIyZ1QMWAScBK4GZwPnuPi+izrVAT3e/2szOA85y9+FVtRs5JKbE/PnzOeywwzAzdu7YRcH6IjZu3Ei9lHpktEgjPaPJbt9BRfZ+7s6CBQs0JEbqtOXLl/PQQw9RUFCAmeHuZGRkMGrUKDp16lSjtl5//XWuvPJKtm7dGi5LTU1l/PjxFT5YrTZiilVb06dP59prry11kXpaWhrjxo1j4MCBNYopVmK1bbHs71jRfqu9dmIpGWPaV1Q2JCaeCftAYLS7nxJM3w7g7vdG1PlXUGe6mdUH/gu08SqCqihh/+6770hLS6NVq1bhxHxL0XY2rC9iw8Z8dhXv4MCDDqSB7te9z3F31q3LZ8OGjfxs//aJDkckLrZv386YMWPCt00tUVBQQEpKCnfeeScNGjSIqq38/HyOPvpoir2YZk2bhcs3bd5EiqXw6aefllpHbcQUq7YKNxVy1ln/gxcX07x583D5hg0bsJQU3nzjjd26De+eiNW2xbK/Y0X7bd/eb7J70jOaVJiwxzODbQ+siJheCQyorI677zSzDUArYG1NVtShQwdWrlzJmjVrSpW7O1u3bKegoIAVK5dRv14DmjVtzpatm9m+/aczR2nNWrCreCdFRT/9cm+c2pSGDVPZsDE/XFa/fkOaNklj85ZCdu7YHi5PT2/Fju3b2LJ1U7isSZM06qXUp3DTTw92atgwlcapTdm0eQO7du0EwFJSSG/Wgq3btrBtW1G4brOmoS+lTZs3hMsaNWpCaqPGbNy0Hi8uBqBevfrapiq2afv2bXy39Dv+/KcHuPbCB5g9dyrvfPBsuO6wn19Pu5914ZGnbwyXZWcezZATLuLpl+5m1eo8AJo2ac5vLn+ITz6fwief/3RXm0uH/w6zFJ5+6a5w2aD+Qzn28DP5y9M3smlzAQD7t+nEFef/gXc+eJYv53wcrvurSx/gxzXLefmtseGyU4+7kL49jmXM2MuB0G/Xgzv35LzTb+CVtx5l0Xezw3Xv+OWT2iZtE+7Orl276J15LH17HM+LUx6gaEvoc5LRfD9a1O/NxzNei2qbftb6IPLXhT5P69ev52etO3NE76FMn/02q1YvJTMzk3r16lW7TSUxdT2oL0f1O4M3//0Ea9f9AIQ+9y3q92bWNx9EtZ/69TyRSc+/xNZtmwFomfEzzjrlGj7L/YQFi3OZMGECZlbtfiou3sXOXTtpt99B9DjwNKbOfJ0fflwCgOP8ZcxrrFi1sFaPvcJN69m1axetWrTlrFOuYVruFBYuCQ1TdHfqb+tC4ab8ao+9zh26MbDP6Xzy+f+x/IeFP63/3D/wzaIvOPDAA8MntGrr89S6ZTtOGnQhM7/+V3ibAM4beiP/XbO8VExVfZ6effXPLF72DUao7rk/H8XSFd8wb950HKdr164MH/qrWv2OeONfTzF77tRw/OcNvZH8glX8e+oLuDsTJkzgtON/Ue13RMnn5LLho/nimy/5NPet8PqPGXA29905iSdf+H2tbFPJ915JTOeffhMrF4e2qUT/Xqfw13vf5uGnfl3pNpXQd3nNt6lfrxOol1K/wl9D8TzDfg4w2N0vD6YvBAa4+/URdeYEdVYG00uCOmvLtHUlcCVAp06d+i5btqxGsWwsKOLJv7zNjp27aJ7eis1FG9m27adEsHl6K3YV72TTpp8SySZNmpHaqAnr1q8OlzVo0JC0ZhkUbipgR0Ry2yKjDdu2by2VSDZrmk79+g0o2PBTItmwYSrNmqazoXAdu3buLNk2WmS0YcuWzWzZujlcNy0tA8PYWPhTcpya2oQmjZtRsGEtxeHktp62SdukbdrHt2nl94v59rs5tGi+Hw0bplK0ZRPuoW3aXLSRPj2Ook2btlFt0wefTOGb+V+Q2qgxAClm1K/fkJ07d1C0dTMHd+nOcYNOr3abSmLKSG9Do0aN2bJ1M8XFu4DQj/a+PY9m//06RLWfVq9eyayvp4Z/9KekpNA4tRnbtm+lYMNqDunSgw7tD6p2P3359TTmL/qKtGYZNGzQiB07trEriGlzUSE5vY6md69BtXrsLV+xiG+/m0N6WsvwNu3cuT3opwJ6Zw2iQ4eDqj32Vv13GctWfkvDhqnhkycATRqnsb5gNZ07HkqH9gfVyjaVfJ5+WPUdy79fQqNGTcLbBNA4tRkbNq7lgA6HhGOq6vP04bQpzJk/k6ZN0gBo1LAxxcW72LFzO5uLCul2aG+OHnharX5HzF84i3mLZtGsaUZ4m4q9mG3biti0uYBDuvTg0EN6VfsdUfI52a91R3bu2lHqJNX27VvJ7NqPjIxWtbJNJd97JTG1adUhvE0ltm3bQs/uh5Oe3qLSbSqh7/Kab1OjRqnc8b8Xzt++fUt3yojnGfbvgY4R0x2CsorqrAyGxDQndPFpKe4+HhgPoSExNQ0kPaMJN44+t6aLiYjsFb788kvGjs2jc+f9gpKfLsTLy8tj+GVH0qdPn6ja2jxmDh/NmEyrVj8lCQT5X/6GfC4/5Tx++7vq7yj1U0z7VxDTzhrF9OWXX/Lj2C/p3LlDmTnp5OUVccWvhkbV1qRJxh/+8B6NmzcGthF589/1m/M55axsRow4I6qYYuWnfmoXlJTup/OvODqqbQu18y2dO/+s3Ly8vPVR91EshWIaG3FcRsZUEHVM6e3X8OUf/h/7tWgclISSpYaE9tv/XHAUI0acHsPIq/fll60ZO3ZhBcdkS/Lydka9bT/t/+bl5uXl5XH+FUclaL/l0blzRlDSslRMNfnsSs3d/MdhRRWVx/O2jjOBQ8ysi5k1BM4DppSpMwW4KHh/DvBBVePXRUSkvMzMTDIyMli3bl2p8nXr1pGRkUFWVlbUbV111VWkpqaWe3JwYWEhqampXHvttbUeU6zaGjp0KGlpaaxfv75U+fr160lLSws/yK42xWrbYtnfsaL9VnvtxFIyxiRxTNjdfSdwPfAvYD7wirvPNbO7zKzkp/DTQCszWwyMAm6LVzwiInVVo0aNGDVqFCkpKeTl5bFs2TLy8vJISUlh1KhRNGzYMOq22rRpw/jx40lJSSE/Pz/8SklJYfz48bRs2bL6RmIcU6zaSk9PZ9y4caSkpLBy5crwKyUlhXHjxtGsWbPqG4mxWG1bLPs7VrTfaq+dWErGmGQvfNKpma0BajaIPf5aU8MLZWWPqL9rj/q6du1pfxvQmNCzL3YBWyi5iqrm6gFtgEbANmBN0GYiY4pVWylARvAqCF7FuxlTrMRq22LZ37FSElNLYB17vt8aADvQfqtKLL67k/FYSlax/LfyAHcv99CLvS5hT0ZmllvRLXgkPtTftUd9XbvU37VL/V271N+1R31du2qjv+M5hl1ERERERPaQEnYRERERkSSmhD02xic6gH2M+rv2qK9rl/q7dqm/a5f6u/aor2tX3PtbY9hFRERERJKYzrCLiIiIiCQxJewiIiIiIklMCXsNmVmemX1jZrPNLDcoa2lm/zazb4O/LRIdZ11RSX+PNrPvg7LZZnZaouOsK8wsw8xeNbMFZjbfzAbq+I6PSvpax3YcmFnXiD6dbWYbzezXOrbjo4r+1vEdJ2b2GzOba2ZzzOxFM0sNnjT/uZktNrOXg6fOSwxU0t8Tzey7iOM7O6br1Bj2mjGzPCDH3ddGlP0ZWOfu95nZbUALd781UTHWJZX092hgk7s/kKi46iozewaY6u5PBV/uTYA70PEdc5X09a/RsR1XZlYP+B4YAFyHju24KtPfl6DjO+bMrD0wDeju7lvM7BXgHeA04DV3f8nMHgf+4+5/S2SsdUEV/X0s8La7vxqP9eoMe2ycATwTvH8GODNxoYjsHjNrDhwNPA3g7tvdvQAd3zFXRV9L/J0ALHH3ZejYrg2R/S3xUx9obGb1Cf34XwUcD5Qkjzq+Y6tsf/8Q7xUqYa85B941s1lmdmVQtr+7rwre/xfYPzGh1UkV9TfA9Wb2tZn9Xf+NHTNdCD1+foKZfWVmT5lZU3R8x0NlfQ06tuPtPODF4L2O7fiL7G/Q8R1z7v498ACwnFCivgGYBRS4+86g2kqgfWIirFsq6m93fzeYfU9wfD9sZo1iuV4l7DU3yN37AKcC15nZ0ZEzPTTGSOOMYqei/v4bcBCQTejD8mDiwqtT6gN9gL+5e29gM3BbZAUd3zFTWV/r2I6jYOjR6cDksvN0bMdeBf2t4zsOgh8+ZxA6EdAOaAoMTmhQdVhF/W1mI4HbgcOAfkBLIKbD65Sw11Dwywp3Xw28DvQHfjSztgDB39WJi7Buqai/3f1Hd9/l7sXAk4T2gey5lcBKd/88mH6VUFKp4zv2KuxrHdtxdyrwpbv/GEzr2I6vUv2t4ztuTgS+c/c17r4DeA04EsgIhmwAdCB0LYHsuYr6+wh3X+Uh24AJxPj4VsJeA2bW1MzSSt4DJwNzgCnARUG1i4A3ExNh3VJZf5f8Axs4i9A+kD3k7v8FVphZ16DoBGAeOr5jrrK+1rEdd+dTeniGju34KtXfOr7jZjlwuJk1MTPjp+/uD4Fzgjo6vmOnov6eH/Hj3whdLxDT41t3iakBMzuQ0FleCP2X9gvufo+ZtQJeAToBy4Bz3X1dgsKsM6ro7+cI/ZeqA3nAVRHjUGUPBLehegpoCCwldFeHFHR8x1wlfT0WHdtxEfzoXw4c6O4bgjJ9d8dJJf2t7+44MbM/AsOBncBXwOWExqy/RGh4xlfAyODsr+yhSvr7n0AbwIDZwNXuvilm61TCLiIiIiKSvDQkRkREREQkiSlhFxERERFJYkrYRURERESSmBJ2EREREZEkpoRdRERERCSJKWEXEREREUliSthFRERERJKYEnYRkTrGzDLM7NoEx9DBzIYnMgYRkbpCCbuISN2TASQ0YSf0uO4+CY5BRKROUMIuIlL33AccZGazzex+MxtpZl8E00+YWT0AM+tsZgvMbKKZLTKzSWZ2opl9ambfmln/iDqTzGy+mb1qZk2qWrmZDQIeAs4J1nlgLWyziEidpYRdRKTuuQ1Y4u7ZwN+B4cCRwfQuYERE3YOBB4HDgtcFwCDgJuCOoE5XYJy7dwM2Us3Ze3efBswEznD3bHdfGpvNEhHZNylhFxGp204A+gIzzWx2MB15xvs7d//G3YuBucD77u7AN0DnoM4Kd/80eP88oYS+Ol2BBXsevoiI1E90ACIiElcGPOPut1cyf1vE++KI6WJ++jfCyyxTdrr0Cs1aAxvcfWcNYxURkQroDLuISN1TCKQF798nNJZ8PwAza2lmB9SwvU5mNjB4fwEwrWSGmb1vZu3L1O8M/FDjqEVEpEJK2EVE6hh3zwc+NbM5wCXA74B3zexr4N9A2xo2uRC4zszmAy2AvwGYWQqhMfDrytRfALQ2szlmdsTub4mIiABYaKiiiIhIeWbWGXjb3bMqmJcFXOruo2o9MBGRfYgSdhERqVRVCbuIiNQOJewiIiIiIklMY9hFRERERJKYEnYRERERkSSmhF1EREREJIkpYRcRERERSWJK2EVEREREkpgSdhERERGRJKaEXUREREQkif1/jYPzt+e2gt8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 900x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy.stats.mstats import mquantiles\n",
    "\n",
    "# vectorized bottom and top 2.5% quantiles for \"confidence interval\"\n",
    "qs = mquantiles(p_t, [0.025, 0.975], axis=0)\n",
    "plt.fill_between(t[:, 0], *qs, alpha=0.7,\n",
    "                 color=\"#7A68A6\")\n",
    "\n",
    "plt.plot(t[:, 0], qs[0], label=\"95% CI\", color=\"#7A68A6\", alpha=0.7)\n",
    "\n",
    "plt.plot(t, mean_prob_t, lw=1, ls=\"--\", color=\"k\",\n",
    "         label=\"average posterior \\nprobability of defect\")\n",
    "\n",
    "plt.xlim(t.min(), t.max())\n",
    "plt.ylim(-0.02, 1.02)\n",
    "plt.legend(loc=\"lower left\")\n",
    "plt.scatter(temperature, D, color=\"k\", s=50, alpha=0.5)\n",
    "plt.xlabel(\"temp, $t$\")\n",
    "\n",
    "plt.ylabel(\"probability estimate\")\n",
    "plt.title(\"Posterior probability estimates given temp. $t$\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:19:14.868872Z",
     "iopub.status.busy": "2021-08-01T05:19:14.868107Z",
     "iopub.status.idle": "2021-08-01T05:19:15.043231Z",
     "shell.execute_reply": "2021-08-01T05:19:15.043795Z",
     "shell.execute_reply.started": "2021-08-01T05:15:39.103917Z"
    },
    "papermill": {
     "duration": 0.205727,
     "end_time": "2021-08-01T05:19:15.043974",
     "exception": false,
     "start_time": "2021-08-01T05:19:14.838247",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 900x180 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "figsize(12.5, 2.5)\n",
    "\n",
    "prob_31 = poisson([31], lambda_samples)\n",
    "\n",
    "plt.xlim(0.995, 1)\n",
    "plt.hist(prob_31, bins=1000, histtype='stepfilled')\n",
    "plt.title(\"Posterior distribution of probability of defect, given $t = 31$\")\n",
    "plt.xlabel(\"probability of defect occurring in O-ring\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:19:15.142907Z",
     "iopub.status.busy": "2021-08-01T05:19:15.137692Z",
     "iopub.status.idle": "2021-08-01T05:19:39.634530Z",
     "shell.execute_reply": "2021-08-01T05:19:39.635580Z",
     "shell.execute_reply.started": "2021-08-01T05:15:39.286099Z"
    },
    "papermill": {
     "duration": 24.564677,
     "end_time": "2021-08-01T05:19:39.635788",
     "exception": false,
     "start_time": "2021-08-01T05:19:15.071111",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.7/site-packages/ipykernel_launcher.py:9: FutureWarning: In v4.0, pm.sample will return an `arviz.InferenceData` object instead of a `MultiTrace` by default. You can pass return_inferencedata=True or return_inferencedata=False to be safe and silence this warning.\n",
      "  if __name__ == '__main__':\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='22000' class='' max='22000' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      100.00% [22000/22000 00:20<00:00 Sampling 2 chains, 0 divergences]\n",
       "    </div>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.7/site-packages/arviz/stats/diagnostics.py:561: RuntimeWarning: invalid value encountered in double_scalars\n",
      "  (between_chain_variance / within_chain_variance + num_samples - 1) / (num_samples)\n"
     ]
    }
   ],
   "source": [
    "N = 10000\n",
    "with pm.Model() as model:\n",
    "    gamma = 2\n",
    "    lam = pm.Exponential(\"lambda\", gamma)\n",
    "    p = pm.Deterministic(\"p\", tt.power(lam,temperature)*tt.exp(-1*lam)/factorial(temperature) )\n",
    "    \n",
    "    simulated = pm.Bernoulli(\"bernoulli_sim\", p, shape=p.tag.test_value.shape)\n",
    "    step = pm.Metropolis(vars=[p])\n",
    "    trace = pm.sample(N, step=step)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:19:39.699331Z",
     "iopub.status.busy": "2021-08-01T05:19:39.698320Z",
     "iopub.status.idle": "2021-08-01T05:19:40.238654Z",
     "shell.execute_reply": "2021-08-01T05:19:40.239140Z",
     "shell.execute_reply.started": "2021-08-01T05:16:04.106414Z"
    },
    "papermill": {
     "duration": 0.575554,
     "end_time": "2021-08-01T05:19:40.239391",
     "exception": false,
     "start_time": "2021-08-01T05:19:39.663837",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(20000, 23)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 900x360 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "figsize(12.5, 5)\n",
    "\n",
    "simulations = trace[\"bernoulli_sim\"]\n",
    "print(simulations.shape)\n",
    "\n",
    "plt.title(\"Simulated dataset using posterior parameters\")\n",
    "figsize(12.5, 6)\n",
    "for i in range(4):\n",
    "    ax = plt.subplot(4, 1, i+1)\n",
    "    plt.scatter(temperature, simulations[1000*i, :], color=\"k\",\n",
    "                s=50, alpha=0.6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-08-01T05:19:40.300598Z",
     "iopub.status.busy": "2021-08-01T05:19:40.299943Z",
     "iopub.status.idle": "2021-08-01T05:19:40.537942Z",
     "shell.execute_reply": "2021-08-01T05:19:40.538447Z",
     "shell.execute_reply.started": "2021-08-01T05:16:04.647452Z"
    },
    "papermill": {
     "duration": 0.270093,
     "end_time": "2021-08-01T05:19:40.538636",
     "exception": false,
     "start_time": "2021-08-01T05:19:40.268543",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x108 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "posterior_probability = simulations.mean(axis=0)\n",
    "ix = np.argsort(posterior_probability)\n",
    "figsize(11., 1.5)\n",
    "separation_plot(posterior_probability, D)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "papermill": {
     "duration": 0.028926,
     "end_time": "2021-08-01T05:19:40.597016",
     "exception": false,
     "start_time": "2021-08-01T05:19:40.568090",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "**从上面的分离图看，模型不是很理想，为1的柱子太分散！**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "papermill": {
     "duration": 0.029531,
     "end_time": "2021-08-01T05:19:40.656057",
     "exception": false,
     "start_time": "2021-08-01T05:19:40.626526",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  },
  "papermill": {
   "default_parameters": {},
   "duration": 173.900692,
   "end_time": "2021-08-01T05:19:42.872917",
   "environment_variables": {},
   "exception": null,
   "input_path": "__notebook__.ipynb",
   "output_path": "__notebook__.ipynb",
   "parameters": {},
   "start_time": "2021-08-01T05:16:48.972225",
   "version": "2.3.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
